diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/controller/BreedRamFileController.java b/zhyc-module/src/main/java/com/zhyc/module/base/controller/BreedRamFileController.java new file mode 100644 index 0000000..7274064 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/controller/BreedRamFileController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.base.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.base.domain.BreedRamFile; +import com.zhyc.module.base.service.IBreedRamFileService; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 种公羊档案Controller + * + * @author zhyc + * @date 2025-07-29 + */ +@RestController +@RequestMapping("/ram_file/bas_ram_file") +public class BreedRamFileController extends BaseController +{ + @Autowired + private IBreedRamFileService breedRamFileService; + + /** + * 查询种公羊档案列表 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:list')") + @GetMapping("/list") + public TableDataInfo list(BreedRamFile breedRamFile) + { + startPage(); + List list = breedRamFileService.selectBreedRamFileList(breedRamFile); + return getDataTable(list); + } + + /** + * 导出种公羊档案列表 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:export')") + @Log(title = "种公羊档案", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BreedRamFile breedRamFile) + { + List list = breedRamFileService.selectBreedRamFileList(breedRamFile); + ExcelUtil util = new ExcelUtil(BreedRamFile.class); + util.exportExcel(response, list, "种公羊档案数据"); + } + + /** + * 获取种公羊档案详细信息 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(breedRamFileService.selectBreedRamFileById(id)); + } + + /** + * 新增种公羊档案 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:add')") + @Log(title = "种公羊档案", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BreedRamFile breedRamFile) + { + return toAjax(breedRamFileService.insertBreedRamFile(breedRamFile)); + } + + /** + * 修改种公羊档案 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:edit')") + @Log(title = "种公羊档案", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BreedRamFile breedRamFile) + { + return toAjax(breedRamFileService.updateBreedRamFile(breedRamFile)); + } + + /** + * 删除种公羊档案 + */ + @PreAuthorize("@ss.hasPermi('breed_ram_file:breed_ram_file:remove')") + @Log(title = "种公羊档案", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(breedRamFileService.deleteBreedRamFileByIds(ids)); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java index 810cad1..e0d1adb 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BasSheepGroup.java @@ -41,4 +41,7 @@ public class BasSheepGroup extends TreeEntity @Excel(name = "祖级列表名称") private String ancestorNames; + + private Integer isLeaf; + } diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/domain/BreedRamFile.java b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BreedRamFile.java new file mode 100644 index 0000000..463308d --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/domain/BreedRamFile.java @@ -0,0 +1,890 @@ +package com.zhyc.module.base.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 种公羊档案对象 breed_ram_file + * + * @author zhyc + * @date 2025-07-29 + */ +public class BreedRamFile extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 种公羊id */ + private Long id; + + /** 普通耳号 */ + @Excel(name = "普通耳号") + private String ordinaryEarNumber; + + /** 牧场id */ + @Excel(name = "牧场id") + private Long ranchId; + + /** 牧场名称 */ + @Excel(name = "牧场名称") + private String ranchName; + + /** 羊舍id */ + @Excel(name = "羊舍id") + private Long sheepfoldId; + + /** 羊舍名称 */ + @Excel(name = "羊舍名称") + private String sheepfoldName; + + /** 电子耳号 */ + @Excel(name = "电子耳号") + private String electronicTags; + + /** 品种id */ + @Excel(name = "品种id") + private Long varietyId; + + /** 品种 */ + @Excel(name = "品种") + private String variety; + + /** 羊只类别 */ + @Excel(name = "羊只类别") + private String sheepCategory; + + /** 当前状态 */ + @Excel(name = "当前状态") + private String currentStatus; + + /** 生日 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private Date birthday; + + /** 动态 */ + @Excel(name = "动态") + private String dynamicInfo; + + /** 月龄 */ + @Excel(name = "月龄") + private Long monthAge; + + /** 出生体重 */ + @Excel(name = "出生体重") + private BigDecimal birthWeight; + + /** 断奶日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "断奶日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date weaningDate; + + /** 断奶日龄 */ + @Excel(name = "断奶日龄") + private Long weaningDayAge; + + /** 断奶体重 */ + @Excel(name = "断奶体重") + private BigDecimal weaningWeight; + + /** 断奶日增重 */ + @Excel(name = "断奶日增重") + private BigDecimal weaningDailyGain; + + /** 断奶后日增重 */ + @Excel(name = "断奶后日增重") + private BigDecimal postWeaningDailyGain; + + /** 当前体重 */ + @Excel(name = "当前体重") + private BigDecimal currentWeight; + + /** 当前体重称重日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "当前体重称重日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date currentWeightDate; + + /** 活动量 */ + @Excel(name = "活动量") + private String activityLevel; + + /** 性欲情况 */ + @Excel(name = "性欲情况") + private String sexualStatus; + + /** 阴囊周长 */ + @Excel(name = "阴囊周长") + private BigDecimal scrotumCircumference; + + /** 采精时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "采精时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date spermCollectionTime; + + /** 精液量 */ + @Excel(name = "精液量") + private BigDecimal spermVolume; + + /** 精液活力 */ + @Excel(name = "精液活力") + private String spermVitality; + + /** 精液密度 */ + @Excel(name = "精液密度") + private String spermDensity; + + /** 精液品质 */ + @Excel(name = "精液品质") + private String spermQuality; + + /** 配种状态 */ + @Excel(name = "配种状态") + private Long breedingStatus; + + /** 上次计划时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "上次计划时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date lastPlanTime; + + /** 本次计划时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "本次计划时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date currentPlanTime; + + /** 蛋白率%EBV */ + @Excel(name = "蛋白率%EBV") + private BigDecimal proteinRateEbv; + + /** 乳脂率%EBV */ + @Excel(name = "乳脂率%EBV") + private BigDecimal milkFatRateEbv; + + /** 乳体细胞(SCS)EBV */ + @Excel(name = "乳体细胞", readConverterExp = "S=CS") + private BigDecimal scsEbv; + + /** 生长性能EBV */ + @Excel(name = "生长性能EBV") + private BigDecimal growthPerformanceEbv; + + /** 抗逆性EBV */ + @Excel(name = "抗逆性EBV") + private BigDecimal resistanceEbv; + + /** 繁殖性能EBV */ + @Excel(name = "繁殖性能EBV") + private BigDecimal reproductionPerformanceEbv; + + /** 体型性状EBV */ + @Excel(name = "体型性状EBV") + private BigDecimal bodyTypeEbv; + + /** 综合育种值 */ + @Excel(name = "综合育种值") + private BigDecimal comprehensiveBreedingValue; + + /** 父号 */ + @Excel(name = "父号") + private String fatherNumber; + + /** 母号 */ + @Excel(name = "母号") + private String motherNumber; + + /** 祖父 */ + @Excel(name = "祖父") + private String grandfatherNumber; + + /** 祖母 */ + @Excel(name = "祖母") + private String grandmotherNumber; + + /** 外祖父 */ + @Excel(name = "外祖父") + private String maternalGrandfatherNumber; + + /** 外祖母 */ + @Excel(name = "外祖母") + private String maternalGrandmotherNumber; + + /** 是否核心羊群(0否1是) */ + @Excel(name = "是否核心羊群", readConverterExp = "0=否,1=是") + private Long isCoreFlock; + + /** 是否种用(0否1是) */ + @Excel(name = "是否种用", readConverterExp = "0=否,1=是") + private Long isBreedingUse; + + /** 孕检 */ + @Excel(name = "孕检") + private String pregnancyCheck; + + /** 总配母羊数 */ + @Excel(name = "总配母羊数") + private Long totalMatedEwes; + + /** 本交孕检母羊数 */ + @Excel(name = "本交孕检母羊数") + private Long naturalPregnancyCheckEwes; + + /** 本交受孕率% */ + @Excel(name = "本交受孕率%") + private BigDecimal naturalConceptionRate; + + /** 人工孕检母羊数 */ + @Excel(name = "人工孕检母羊数") + private Long artificialPregnancyCheckEwes; + + /** 人工受孕率% */ + @Excel(name = "人工受孕率%") + private BigDecimal artificialConceptionRate; + + /** 公羊母亲奶量 */ + @Excel(name = "公羊母亲奶量") + private BigDecimal ramMotherMilkVolume; + + /** 产奶量估计育种值(Kg) */ + @Excel(name = "产奶量估计育种值", readConverterExp = "K=g") + private BigDecimal milkProductionEbv; + + /** 准确性 */ + @Excel(name = "准确性") + private BigDecimal accuracy; + + /** 信息数 */ + @Excel(name = "信息数") + private Long informationCount; + + /** 是否亲子鉴定(0否1是) */ + @Excel(name = "是否亲子鉴定", readConverterExp = "0=否,1=是") + private Long isPaternityTested; + + /** 是否删除(0否1是) */ + private Long isDelete; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setOrdinaryEarNumber(String ordinaryEarNumber) + { + this.ordinaryEarNumber = ordinaryEarNumber; + } + + public String getOrdinaryEarNumber() + { + return ordinaryEarNumber; + } + public void setRanchId(Long ranchId) + { + this.ranchId = ranchId; + } + + public Long getRanchId() + { + return ranchId; + } + public void setRanchName(String ranchName) + { + this.ranchName = ranchName; + } + + public String getRanchName() + { + return ranchName; + } + public void setSheepfoldId(Long sheepfoldId) + { + this.sheepfoldId = sheepfoldId; + } + + public Long getSheepfoldId() + { + return sheepfoldId; + } + public void setSheepfoldName(String sheepfoldName) + { + this.sheepfoldName = sheepfoldName; + } + + public String getSheepfoldName() + { + return sheepfoldName; + } + public void setElectronicTags(String electronicTags) + { + this.electronicTags = electronicTags; + } + + public String getElectronicTags() + { + return electronicTags; + } + public void setVarietyId(Long varietyId) + { + this.varietyId = varietyId; + } + + public Long getVarietyId() + { + return varietyId; + } + public void setVariety(String variety) + { + this.variety = variety; + } + + public String getVariety() + { + return variety; + } + public void setSheepCategory(String sheepCategory) + { + this.sheepCategory = sheepCategory; + } + + public String getSheepCategory() + { + return sheepCategory; + } + public void setCurrentStatus(String currentStatus) + { + this.currentStatus = currentStatus; + } + + public String getCurrentStatus() + { + return currentStatus; + } + public void setBirthday(Date birthday) + { + this.birthday = birthday; + } + + public Date getBirthday() + { + return birthday; + } + public void setDynamicInfo(String dynamicInfo) + { + this.dynamicInfo = dynamicInfo; + } + + public String getDynamicInfo() + { + return dynamicInfo; + } + public void setMonthAge(Long monthAge) + { + this.monthAge = monthAge; + } + + public Long getMonthAge() + { + return monthAge; + } + public void setBirthWeight(BigDecimal birthWeight) + { + this.birthWeight = birthWeight; + } + + public BigDecimal getBirthWeight() + { + return birthWeight; + } + public void setWeaningDate(Date weaningDate) + { + this.weaningDate = weaningDate; + } + + public Date getWeaningDate() + { + return weaningDate; + } + public void setWeaningDayAge(Long weaningDayAge) + { + this.weaningDayAge = weaningDayAge; + } + + public Long getWeaningDayAge() + { + return weaningDayAge; + } + public void setWeaningWeight(BigDecimal weaningWeight) + { + this.weaningWeight = weaningWeight; + } + + public BigDecimal getWeaningWeight() + { + return weaningWeight; + } + public void setWeaningDailyGain(BigDecimal weaningDailyGain) + { + this.weaningDailyGain = weaningDailyGain; + } + + public BigDecimal getWeaningDailyGain() + { + return weaningDailyGain; + } + public void setPostWeaningDailyGain(BigDecimal postWeaningDailyGain) + { + this.postWeaningDailyGain = postWeaningDailyGain; + } + + public BigDecimal getPostWeaningDailyGain() + { + return postWeaningDailyGain; + } + public void setCurrentWeight(BigDecimal currentWeight) + { + this.currentWeight = currentWeight; + } + + public BigDecimal getCurrentWeight() + { + return currentWeight; + } + public void setCurrentWeightDate(Date currentWeightDate) + { + this.currentWeightDate = currentWeightDate; + } + + public Date getCurrentWeightDate() + { + return currentWeightDate; + } + public void setActivityLevel(String activityLevel) + { + this.activityLevel = activityLevel; + } + + public String getActivityLevel() + { + return activityLevel; + } + public void setSexualStatus(String sexualStatus) + { + this.sexualStatus = sexualStatus; + } + + public String getSexualStatus() + { + return sexualStatus; + } + public void setScrotumCircumference(BigDecimal scrotumCircumference) + { + this.scrotumCircumference = scrotumCircumference; + } + + public BigDecimal getScrotumCircumference() + { + return scrotumCircumference; + } + public void setSpermCollectionTime(Date spermCollectionTime) + { + this.spermCollectionTime = spermCollectionTime; + } + + public Date getSpermCollectionTime() + { + return spermCollectionTime; + } + public void setSpermVolume(BigDecimal spermVolume) + { + this.spermVolume = spermVolume; + } + + public BigDecimal getSpermVolume() + { + return spermVolume; + } + public void setSpermVitality(String spermVitality) + { + this.spermVitality = spermVitality; + } + + public String getSpermVitality() + { + return spermVitality; + } + public void setSpermDensity(String spermDensity) + { + this.spermDensity = spermDensity; + } + + public String getSpermDensity() + { + return spermDensity; + } + public void setSpermQuality(String spermQuality) + { + this.spermQuality = spermQuality; + } + + public String getSpermQuality() + { + return spermQuality; + } + public void setBreedingStatus(Long breedingStatus) + { + this.breedingStatus = breedingStatus; + } + + public Long getBreedingStatus() + { + return breedingStatus; + } + public void setLastPlanTime(Date lastPlanTime) + { + this.lastPlanTime = lastPlanTime; + } + + public Date getLastPlanTime() + { + return lastPlanTime; + } + public void setCurrentPlanTime(Date currentPlanTime) + { + this.currentPlanTime = currentPlanTime; + } + + public Date getCurrentPlanTime() + { + return currentPlanTime; + } + public void setProteinRateEbv(BigDecimal proteinRateEbv) + { + this.proteinRateEbv = proteinRateEbv; + } + + public BigDecimal getProteinRateEbv() + { + return proteinRateEbv; + } + public void setMilkFatRateEbv(BigDecimal milkFatRateEbv) + { + this.milkFatRateEbv = milkFatRateEbv; + } + + public BigDecimal getMilkFatRateEbv() + { + return milkFatRateEbv; + } + public void setScsEbv(BigDecimal scsEbv) + { + this.scsEbv = scsEbv; + } + + public BigDecimal getScsEbv() + { + return scsEbv; + } + public void setGrowthPerformanceEbv(BigDecimal growthPerformanceEbv) + { + this.growthPerformanceEbv = growthPerformanceEbv; + } + + public BigDecimal getGrowthPerformanceEbv() + { + return growthPerformanceEbv; + } + public void setResistanceEbv(BigDecimal resistanceEbv) + { + this.resistanceEbv = resistanceEbv; + } + + public BigDecimal getResistanceEbv() + { + return resistanceEbv; + } + public void setReproductionPerformanceEbv(BigDecimal reproductionPerformanceEbv) + { + this.reproductionPerformanceEbv = reproductionPerformanceEbv; + } + + public BigDecimal getReproductionPerformanceEbv() + { + return reproductionPerformanceEbv; + } + public void setBodyTypeEbv(BigDecimal bodyTypeEbv) + { + this.bodyTypeEbv = bodyTypeEbv; + } + + public BigDecimal getBodyTypeEbv() + { + return bodyTypeEbv; + } + public void setComprehensiveBreedingValue(BigDecimal comprehensiveBreedingValue) + { + this.comprehensiveBreedingValue = comprehensiveBreedingValue; + } + + public BigDecimal getComprehensiveBreedingValue() + { + return comprehensiveBreedingValue; + } + public void setFatherNumber(String fatherNumber) + { + this.fatherNumber = fatherNumber; + } + + public String getFatherNumber() + { + return fatherNumber; + } + public void setMotherNumber(String motherNumber) + { + this.motherNumber = motherNumber; + } + + public String getMotherNumber() + { + return motherNumber; + } + public void setGrandfatherNumber(String grandfatherNumber) + { + this.grandfatherNumber = grandfatherNumber; + } + + public String getGrandfatherNumber() + { + return grandfatherNumber; + } + public void setGrandmotherNumber(String grandmotherNumber) + { + this.grandmotherNumber = grandmotherNumber; + } + + public String getGrandmotherNumber() + { + return grandmotherNumber; + } + public void setMaternalGrandfatherNumber(String maternalGrandfatherNumber) + { + this.maternalGrandfatherNumber = maternalGrandfatherNumber; + } + + public String getMaternalGrandfatherNumber() + { + return maternalGrandfatherNumber; + } + public void setMaternalGrandmotherNumber(String maternalGrandmotherNumber) + { + this.maternalGrandmotherNumber = maternalGrandmotherNumber; + } + + public String getMaternalGrandmotherNumber() + { + return maternalGrandmotherNumber; + } + public void setIsCoreFlock(Long isCoreFlock) + { + this.isCoreFlock = isCoreFlock; + } + + public Long getIsCoreFlock() + { + return isCoreFlock; + } + public void setIsBreedingUse(Long isBreedingUse) + { + this.isBreedingUse = isBreedingUse; + } + + public Long getIsBreedingUse() + { + return isBreedingUse; + } + public void setPregnancyCheck(String pregnancyCheck) + { + this.pregnancyCheck = pregnancyCheck; + } + + public String getPregnancyCheck() + { + return pregnancyCheck; + } + public void setTotalMatedEwes(Long totalMatedEwes) + { + this.totalMatedEwes = totalMatedEwes; + } + + public Long getTotalMatedEwes() + { + return totalMatedEwes; + } + public void setNaturalPregnancyCheckEwes(Long naturalPregnancyCheckEwes) + { + this.naturalPregnancyCheckEwes = naturalPregnancyCheckEwes; + } + + public Long getNaturalPregnancyCheckEwes() + { + return naturalPregnancyCheckEwes; + } + public void setNaturalConceptionRate(BigDecimal naturalConceptionRate) + { + this.naturalConceptionRate = naturalConceptionRate; + } + + public BigDecimal getNaturalConceptionRate() + { + return naturalConceptionRate; + } + public void setArtificialPregnancyCheckEwes(Long artificialPregnancyCheckEwes) + { + this.artificialPregnancyCheckEwes = artificialPregnancyCheckEwes; + } + + public Long getArtificialPregnancyCheckEwes() + { + return artificialPregnancyCheckEwes; + } + public void setArtificialConceptionRate(BigDecimal artificialConceptionRate) + { + this.artificialConceptionRate = artificialConceptionRate; + } + + public BigDecimal getArtificialConceptionRate() + { + return artificialConceptionRate; + } + public void setRamMotherMilkVolume(BigDecimal ramMotherMilkVolume) + { + this.ramMotherMilkVolume = ramMotherMilkVolume; + } + + public BigDecimal getRamMotherMilkVolume() + { + return ramMotherMilkVolume; + } + public void setMilkProductionEbv(BigDecimal milkProductionEbv) + { + this.milkProductionEbv = milkProductionEbv; + } + + public BigDecimal getMilkProductionEbv() + { + return milkProductionEbv; + } + public void setAccuracy(BigDecimal accuracy) + { + this.accuracy = accuracy; + } + + public BigDecimal getAccuracy() + { + return accuracy; + } + public void setInformationCount(Long informationCount) + { + this.informationCount = informationCount; + } + + public Long getInformationCount() + { + return informationCount; + } + public void setIsPaternityTested(Long isPaternityTested) + { + this.isPaternityTested = isPaternityTested; + } + + public Long getIsPaternityTested() + { + return isPaternityTested; + } + public void setIsDelete(Long isDelete) + { + this.isDelete = isDelete; + } + + public Long getIsDelete() + { + return isDelete; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("ordinaryEarNumber", getOrdinaryEarNumber()) + .append("ranchId", getRanchId()) + .append("ranchName", getRanchName()) + .append("sheepfoldId", getSheepfoldId()) + .append("sheepfoldName", getSheepfoldName()) + .append("electronicTags", getElectronicTags()) + .append("varietyId", getVarietyId()) + .append("variety", getVariety()) + .append("sheepCategory", getSheepCategory()) + .append("currentStatus", getCurrentStatus()) + .append("birthday", getBirthday()) + .append("dynamicInfo", getDynamicInfo()) + .append("monthAge", getMonthAge()) + .append("birthWeight", getBirthWeight()) + .append("weaningDate", getWeaningDate()) + .append("weaningDayAge", getWeaningDayAge()) + .append("weaningWeight", getWeaningWeight()) + .append("weaningDailyGain", getWeaningDailyGain()) + .append("postWeaningDailyGain", getPostWeaningDailyGain()) + .append("currentWeight", getCurrentWeight()) + .append("currentWeightDate", getCurrentWeightDate()) + .append("activityLevel", getActivityLevel()) + .append("sexualStatus", getSexualStatus()) + .append("scrotumCircumference", getScrotumCircumference()) + .append("spermCollectionTime", getSpermCollectionTime()) + .append("spermVolume", getSpermVolume()) + .append("spermVitality", getSpermVitality()) + .append("spermDensity", getSpermDensity()) + .append("spermQuality", getSpermQuality()) + .append("breedingStatus", getBreedingStatus()) + .append("lastPlanTime", getLastPlanTime()) + .append("currentPlanTime", getCurrentPlanTime()) + .append("remark", getRemark()) + .append("proteinRateEbv", getProteinRateEbv()) + .append("milkFatRateEbv", getMilkFatRateEbv()) + .append("scsEbv", getScsEbv()) + .append("growthPerformanceEbv", getGrowthPerformanceEbv()) + .append("resistanceEbv", getResistanceEbv()) + .append("reproductionPerformanceEbv", getReproductionPerformanceEbv()) + .append("bodyTypeEbv", getBodyTypeEbv()) + .append("comprehensiveBreedingValue", getComprehensiveBreedingValue()) + .append("fatherNumber", getFatherNumber()) + .append("motherNumber", getMotherNumber()) + .append("grandfatherNumber", getGrandfatherNumber()) + .append("grandmotherNumber", getGrandmotherNumber()) + .append("maternalGrandfatherNumber", getMaternalGrandfatherNumber()) + .append("maternalGrandmotherNumber", getMaternalGrandmotherNumber()) + .append("isCoreFlock", getIsCoreFlock()) + .append("isBreedingUse", getIsBreedingUse()) + .append("pregnancyCheck", getPregnancyCheck()) + .append("totalMatedEwes", getTotalMatedEwes()) + .append("naturalPregnancyCheckEwes", getNaturalPregnancyCheckEwes()) + .append("naturalConceptionRate", getNaturalConceptionRate()) + .append("artificialPregnancyCheckEwes", getArtificialPregnancyCheckEwes()) + .append("artificialConceptionRate", getArtificialConceptionRate()) + .append("ramMotherMilkVolume", getRamMotherMilkVolume()) + .append("milkProductionEbv", getMilkProductionEbv()) + .append("accuracy", getAccuracy()) + .append("informationCount", getInformationCount()) + .append("isPaternityTested", getIsPaternityTested()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("isDelete", getIsDelete()) + .toString(); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BasSheepMapper.java b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BasSheepMapper.java index 1b16800..4baaf89 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BasSheepMapper.java +++ b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BasSheepMapper.java @@ -78,4 +78,6 @@ public interface BasSheepMapper //用于校验改耳号部分新管理/电子耳号 int existsByManageTag(@Param("tag") String tag); int existsByElectronicTag(@Param("tag") String tag); + + } diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BreedRamFileMapper.java b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BreedRamFileMapper.java new file mode 100644 index 0000000..bb6eaa2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/mapper/BreedRamFileMapper.java @@ -0,0 +1,109 @@ +package com.zhyc.module.base.mapper; + +import java.util.List; +import com.zhyc.module.base.domain.BreedRamFile; + +/** + * 种公羊档案Mapper接口 + * + * @author zhyc + * @date 2025-07-29 + */ +public interface BreedRamFileMapper +{ + /** + * 查询种公羊档案 + * + * @param id 种公羊档案主键 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileById(Long id); + + /** + * 查询种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectBreedRamFileList(BreedRamFile breedRamFile); + + /** + * 新增种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int insertBreedRamFile(BreedRamFile breedRamFile); + + /** + * 修改种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int updateBreedRamFile(BreedRamFile breedRamFile); + + /** + * 删除种公羊档案 + * + * @param id 种公羊档案主键 + * @return 结果 + */ + public int deleteBreedRamFileById(Long id); + + /** + * 批量删除种公羊档案 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBreedRamFileByIds(Long[] ids); + + /** + * 根据普通耳号查询种公羊档案 + * + * @param ordinaryEarNumber 普通耳号 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileByOrdinaryEarNumber(String ordinaryEarNumber); + + /** + * 根据电子耳号查询种公羊档案 + * + * @param electronicTags 电子耳号 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileByElectronicTags(String electronicTags); + + /** + * 根据牧场ID查询种公羊档案列表 + * + * @param ranchId 牧场ID + * @return 种公羊档案集合 + */ + public List selectBreedRamFileListByRanchId(Long ranchId); + + /** + * 根据羊舍ID查询种公羊档案列表 + * + * @param sheepfoldId 羊舍ID + * @return 种公羊档案集合 + */ + public List selectBreedRamFileListBySheepfoldId(Long sheepfoldId); + + /** + * 查询核心羊群种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectCoreFlockBreedRamFileList(BreedRamFile breedRamFile); + + /** + * 查询种用种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectBreedingUseBreedRamFileList(BreedRamFile breedRamFile); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/service/IBreedRamFileService.java b/zhyc-module/src/main/java/com/zhyc/module/base/service/IBreedRamFileService.java new file mode 100644 index 0000000..847f3b0 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/service/IBreedRamFileService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.base.service; + +import java.util.List; +import com.zhyc.module.base.domain.BreedRamFile; + +/** + * 种公羊档案Service接口 + * + * @author zhyc + * @date 2025-07-29 + */ +public interface IBreedRamFileService +{ + /** + * 查询种公羊档案 + * + * @param id 种公羊档案主键 + * @return 种公羊档案 + */ + public BreedRamFile selectBreedRamFileById(Long id); + + /** + * 查询种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案集合 + */ + public List selectBreedRamFileList(BreedRamFile breedRamFile); + + /** + * 新增种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int insertBreedRamFile(BreedRamFile breedRamFile); + + /** + * 修改种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + public int updateBreedRamFile(BreedRamFile breedRamFile); + + /** + * 批量删除种公羊档案 + * + * @param ids 需要删除的种公羊档案主键集合 + * @return 结果 + */ + public int deleteBreedRamFileByIds(Long[] ids); + + /** + * 删除种公羊档案信息 + * + * @param id 种公羊档案主键 + * @return 结果 + */ + public int deleteBreedRamFileById(Long id); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/BreedRamFileServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/BreedRamFileServiceImpl.java new file mode 100644 index 0000000..7e7d8fe --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/base/service/impl/BreedRamFileServiceImpl.java @@ -0,0 +1,96 @@ +package com.zhyc.module.base.service.impl; + +import java.util.List; +import com.zhyc.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zhyc.module.base.mapper.BreedRamFileMapper; +import com.zhyc.module.base.domain.BreedRamFile; +import com.zhyc.module.base.service.IBreedRamFileService; + +/** + * 种公羊档案Service业务层处理 + * + * @author zhyc + * @date 2025-07-29 + */ +@Service +public class BreedRamFileServiceImpl implements IBreedRamFileService +{ + @Autowired + private BreedRamFileMapper breedRamFileMapper; + + /** + * 查询种公羊档案 + * + * @param id 种公羊档案主键 + * @return 种公羊档案 + */ + @Override + public BreedRamFile selectBreedRamFileById(Long id) + { + return breedRamFileMapper.selectBreedRamFileById(id); + } + + /** + * 查询种公羊档案列表 + * + * @param breedRamFile 种公羊档案 + * @return 种公羊档案 + */ + @Override + public List selectBreedRamFileList(BreedRamFile breedRamFile) + { + return breedRamFileMapper.selectBreedRamFileList(breedRamFile); + } + + /** + * 新增种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + @Override + public int insertBreedRamFile(BreedRamFile breedRamFile) + { + breedRamFile.setCreateTime(DateUtils.getNowDate()); + return breedRamFileMapper.insertBreedRamFile(breedRamFile); + } + + /** + * 修改种公羊档案 + * + * @param breedRamFile 种公羊档案 + * @return 结果 + */ + @Override + public int updateBreedRamFile(BreedRamFile breedRamFile) + { + breedRamFile.setUpdateTime(DateUtils.getNowDate()); + return breedRamFileMapper.updateBreedRamFile(breedRamFile); + } + + /** + * 批量删除种公羊档案 + * + * @param ids 需要删除的种公羊档案主键 + * @return 结果 + */ + @Override + public int deleteBreedRamFileByIds(Long[] ids) + { + return breedRamFileMapper.deleteBreedRamFileByIds(ids); + } + + /** + * 删除种公羊档案信息 + * + * @param id 种公羊档案主键 + * @return 结果 + */ + @Override + public int deleteBreedRamFileById(Long id) + { + return breedRamFileMapper.deleteBreedRamFileById(id); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedDetailsController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedDetailsController.java new file mode 100644 index 0000000..9ef4f87 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedDetailsController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.feed.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgFeedDetails; +import com.zhyc.module.feed.service.ISgFeedDetailsService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 饲喂记录详情Controller + * + * @author ruoyi + * @date 2025-08-01 + */ +@RestController +@RequestMapping("/feed/details") +public class SgFeedDetailsController extends BaseController +{ + @Autowired + private ISgFeedDetailsService sgFeedDetailsService; + + /** + * 查询饲喂记录详情列表 + */ + @PreAuthorize("@ss.hasPermi('feed:details:list')") + @GetMapping("/list") + public TableDataInfo list(SgFeedDetails sgFeedDetails) + { + startPage(); + List list = sgFeedDetailsService.selectSgFeedDetailsList(sgFeedDetails); + return getDataTable(list); + } + + /** + * 导出饲喂记录详情列表 + */ + @PreAuthorize("@ss.hasPermi('feed:details:export')") + @Log(title = "饲喂记录详情", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgFeedDetails sgFeedDetails) + { + List list = sgFeedDetailsService.selectSgFeedDetailsList(sgFeedDetails); + ExcelUtil util = new ExcelUtil(SgFeedDetails.class); + util.exportExcel(response, list, "饲喂记录详情数据"); + } + + /** + * 获取饲喂记录详情详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:details:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(sgFeedDetailsService.selectSgFeedDetailsById(id)); + } + + /** + * 新增饲喂记录详情 + */ + @PreAuthorize("@ss.hasPermi('feed:details:add')") + @Log(title = "饲喂记录详情", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SgFeedDetails sgFeedDetails) + { + return toAjax(sgFeedDetailsService.insertSgFeedDetails(sgFeedDetails)); + } + + /** + * 修改饲喂记录详情 + */ + @PreAuthorize("@ss.hasPermi('feed:details:edit')") + @Log(title = "饲喂记录详情", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SgFeedDetails sgFeedDetails) + { + return toAjax(sgFeedDetailsService.updateSgFeedDetails(sgFeedDetails)); + } + + /** + * 删除饲喂记录详情 + */ + @PreAuthorize("@ss.hasPermi('feed:details:remove')") + @Log(title = "饲喂记录详情", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(sgFeedDetailsService.deleteSgFeedDetailsByIds(ids)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedInfoController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedInfoController.java new file mode 100644 index 0000000..8673f0c --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedInfoController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.feed.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgFeedInfo; +import com.zhyc.module.feed.service.ISgFeedInfoService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 饲喂记录Controller + * + * @author ruoyi + * @date 2025-08-01 + */ +@RestController +@RequestMapping("/feed/info") +public class SgFeedInfoController extends BaseController +{ + @Autowired + private ISgFeedInfoService sgFeedInfoService; + + /** + * 查询饲喂记录列表 + */ + @PreAuthorize("@ss.hasPermi('feed:info:list')") + @GetMapping("/list") + public TableDataInfo list(SgFeedInfo sgFeedInfo) + { + startPage(); + List list = sgFeedInfoService.selectSgFeedInfoList(sgFeedInfo); + return getDataTable(list); + } + + /** + * 导出饲喂记录列表 + */ + @PreAuthorize("@ss.hasPermi('feed:info:export')") + @Log(title = "饲喂记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgFeedInfo sgFeedInfo) + { + List list = sgFeedInfoService.selectSgFeedInfoList(sgFeedInfo); + ExcelUtil util = new ExcelUtil(SgFeedInfo.class); + util.exportExcel(response, list, "饲喂记录数据"); + } + + /** + * 获取饲喂记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:info:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(sgFeedInfoService.selectSgFeedInfoById(id)); + } + + /** + * 新增饲喂记录 + */ + @PreAuthorize("@ss.hasPermi('feed:info:add')") + @Log(title = "饲喂记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SgFeedInfo sgFeedInfo) + { + return toAjax(sgFeedInfoService.insertSgFeedInfo(sgFeedInfo)); + } + + /** + * 修改饲喂记录 + */ + @PreAuthorize("@ss.hasPermi('feed:info:edit')") + @Log(title = "饲喂记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SgFeedInfo sgFeedInfo) + { + return toAjax(sgFeedInfoService.updateSgFeedInfo(sgFeedInfo)); + } + + /** + * 删除饲喂记录 + */ + @PreAuthorize("@ss.hasPermi('feed:info:remove')") + @Log(title = "饲喂记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(sgFeedInfoService.deleteSgFeedInfoByIds(ids)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedPlanController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedPlanController.java new file mode 100644 index 0000000..ad2a6a2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedPlanController.java @@ -0,0 +1,107 @@ +package com.zhyc.module.feed.controller; + +import java.util.Date; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgFeedPlan; +import com.zhyc.module.feed.service.ISgFeedPlanService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 饲喂计划Controller + * + * @author HashMap + * @date 2025-08-08 + */ +@RestController +@RequestMapping("/feed/FeedPlan") +public class SgFeedPlanController extends BaseController +{ + private final ISgFeedPlanService sgFeedPlanService; + + public SgFeedPlanController(ISgFeedPlanService sgFeedPlanService) { + this.sgFeedPlanService = sgFeedPlanService; + } + + /** + * 查询饲喂计划列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FeedPlan:list')") + @GetMapping("/list") + public TableDataInfo list(SgFeedPlan sgFeedPlan) + { + startPage(); + List list = sgFeedPlanService.selectSgFeedPlanList(sgFeedPlan); + return getDataTable(list); + } + + /** + * 导出饲喂计划列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FeedPlan:export')") + @Log(title = "饲喂计划", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgFeedPlan sgFeedPlan) + { + List list = sgFeedPlanService.selectSgFeedPlanList(sgFeedPlan); + ExcelUtil util = new ExcelUtil<>(SgFeedPlan.class); + util.exportExcel(response, list, "饲喂计划数据"); + } + + /** + * 获取饲喂计划详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:FeedPlan:query')") + @GetMapping(value = "/{createDate}") + public AjaxResult getInfo(@PathVariable("createDate") Date createDate) + { + return success(sgFeedPlanService.selectSgFeedPlanByCreateDate(createDate)); + } + + /** + * 新增饲喂计划 + */ + @PreAuthorize("@ss.hasPermi('feed:FeedPlan:add')") + @Log(title = "饲喂计划", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SgFeedPlan sgFeedPlan) + { + return toAjax(sgFeedPlanService.insertSgFeedPlan(sgFeedPlan)); + } + + /** + * 修改饲喂计划 + */ + @PreAuthorize("@ss.hasPermi('feed:FeedPlan:edit')") + @Log(title = "饲喂计划", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SgFeedPlan sgFeedPlan) + { + return toAjax(sgFeedPlanService.updateSgFeedPlan(sgFeedPlan)); + } + + /** + * 删除饲喂计划 + */ + @PreAuthorize("@ss.hasPermi('feed:FeedPlan:remove')") + @Log(title = "饲喂计划", businessType = BusinessType.DELETE) + @DeleteMapping("/{createDates}") + public AjaxResult remove(@PathVariable Date[] createDates) + { + return toAjax(sgFeedPlanService.deleteSgFeedPlanByCreateDates(createDates)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedRatioController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedRatioController.java new file mode 100644 index 0000000..81ddd36 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFeedRatioController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.feed.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgFeedRatio; +import com.zhyc.module.feed.service.ISgFeedRatioService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 饲喂比例Controller + * + * @author ruoyi + * @date 2025-08-01 + */ +@RestController +@RequestMapping("/feed/ratio") +public class SgFeedRatioController extends BaseController +{ + @Autowired + private ISgFeedRatioService sgFeedRatioService; + + /** + * 查询饲喂比例列表 + */ + @PreAuthorize("@ss.hasPermi('feed:ratio:list')") + @GetMapping("/list") + public TableDataInfo list(SgFeedRatio sgFeedRatio) + { + startPage(); + List list = sgFeedRatioService.selectSgFeedRatioList(sgFeedRatio); + return getDataTable(list); + } + + /** + * 导出饲喂比例列表 + */ + @PreAuthorize("@ss.hasPermi('feed:ratio:export')") + @Log(title = "饲喂比例", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgFeedRatio sgFeedRatio) + { + List list = sgFeedRatioService.selectSgFeedRatioList(sgFeedRatio); + ExcelUtil util = new ExcelUtil(SgFeedRatio.class); + util.exportExcel(response, list, "饲喂比例数据"); + } + + /** + * 获取饲喂比例详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:ratio:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(sgFeedRatioService.selectSgFeedRatioById(id)); + } + + /** + * 新增饲喂比例 + */ + @PreAuthorize("@ss.hasPermi('feed:ratio:add')") + @Log(title = "饲喂比例", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SgFeedRatio sgFeedRatio) + { + return toAjax(sgFeedRatioService.insertSgFeedRatio(sgFeedRatio)); + } + + /** + * 修改饲喂比例 + */ + @PreAuthorize("@ss.hasPermi('feed:ratio:edit')") + @Log(title = "饲喂比例", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SgFeedRatio sgFeedRatio) + { + return toAjax(sgFeedRatioService.updateSgFeedRatio(sgFeedRatio)); + } + + /** + * 删除饲喂比例 + */ + @PreAuthorize("@ss.hasPermi('feed:ratio:remove')") + @Log(title = "饲喂比例", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(sgFeedRatioService.deleteSgFeedRatioByIds(ids)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFodderController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFodderController.java new file mode 100644 index 0000000..94b2161 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFodderController.java @@ -0,0 +1,104 @@ +package com.zhyc.module.feed.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgFodder; +import com.zhyc.module.feed.service.ISgFodderService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 原料Controller + * + * @author ruoyi + * @date 2025-08-01 + */ +@RestController +@RequestMapping("/feed/fodder") +public class SgFodderController extends BaseController +{ + @Autowired + private ISgFodderService sgFodderService; + + /** + * 查询原料列表 + */ + @PreAuthorize("@ss.hasPermi('feed:fodder:list')") + @GetMapping("/list") + public TableDataInfo list(SgFodder sgFodder) + { + startPage(); + List list = sgFodderService.selectSgFodderList(sgFodder); + return getDataTable(list); + } + + /** + * 导出原料列表 + */ + @PreAuthorize("@ss.hasPermi('feed:fodder:export')") + @Log(title = "原料", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgFodder sgFodder) + { + List list = sgFodderService.selectSgFodderList(sgFodder); + ExcelUtil util = new ExcelUtil(SgFodder.class); + util.exportExcel(response, list, "原料数据"); + } + + /** + * 获取原料详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:fodder:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(sgFodderService.selectSgFodderById(id)); + } + + /** + * 新增原料 + */ + @PreAuthorize("@ss.hasPermi('feed:fodder:add')") + @Log(title = "原料", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SgFodder sgFodder) + { + return toAjax(sgFodderService.insertSgFodder(sgFodder)); + } + + /** + * 修改原料 + */ + @PreAuthorize("@ss.hasPermi('feed:fodder:edit')") + @Log(title = "原料", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SgFodder sgFodder) + { + return toAjax(sgFodderService.updateSgFodder(sgFodder)); + } + + /** + * 删除原料 + */ + @PreAuthorize("@ss.hasPermi('feed:fodder:remove')") + @Log(title = "原料", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(sgFodderService.deleteSgFodderByIds(ids)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFormulaListController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFormulaListController.java new file mode 100644 index 0000000..fb6a83b --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFormulaListController.java @@ -0,0 +1,106 @@ +package com.zhyc.module.feed.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgFormulaList; +import com.zhyc.module.feed.service.ISgFormulaListService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 配方列表Controller + * + * @author HashMap + * @date 2025-08-09 + */ +@RestController +@RequestMapping("/feed/FormulaList") +public class SgFormulaListController extends BaseController +{ + private final ISgFormulaListService sgFormulaListService; + + public SgFormulaListController(ISgFormulaListService sgFormulaListService) { + this.sgFormulaListService = sgFormulaListService; + } + + /** + * 查询配方列表列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaList:list')") + @GetMapping("/list") + public TableDataInfo list(SgFormulaList sgFormulaList) + { + startPage(); + List list = sgFormulaListService.selectSgFormulaListList(sgFormulaList); + return getDataTable(list); + } + + /** + * 导出配方列表列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaList:export')") + @Log(title = "配方列表", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgFormulaList sgFormulaList) + { + List list = sgFormulaListService.selectSgFormulaListList(sgFormulaList); + ExcelUtil util = new ExcelUtil<>(SgFormulaList.class); + util.exportExcel(response, list, "配方列表数据"); + } + + /** + * 获取配方列表详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaList:query')") + @GetMapping(value = "/{code}") + public AjaxResult getInfo(@PathVariable("code") Long code) + { + return success(sgFormulaListService.selectSgFormulaListByCode(code)); + } + + /** + * 新增配方列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaList:add')") + @Log(title = "配方列表", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SgFormulaList sgFormulaList) + { + return toAjax(sgFormulaListService.insertSgFormulaList(sgFormulaList)); + } + + /** + * 修改配方列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaList:edit')") + @Log(title = "配方列表", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SgFormulaList sgFormulaList) + { + return toAjax(sgFormulaListService.updateSgFormulaList(sgFormulaList)); + } + + /** + * 删除配方列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaList:remove')") + @Log(title = "配方列表", businessType = BusinessType.DELETE) + @DeleteMapping("/{codes}") + public AjaxResult remove(@PathVariable Long[] codes) + { + return toAjax(sgFormulaListService.deleteSgFormulaListByCodes(codes)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFormulaManagementController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFormulaManagementController.java new file mode 100644 index 0000000..3f33ae2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgFormulaManagementController.java @@ -0,0 +1,172 @@ +package com.zhyc.module.feed.controller; + +import java.util.List; +import java.util.Objects; +import javax.servlet.http.HttpServletResponse; + +import com.zhyc.module.feed.domain.SgFormulaList; +import com.zhyc.module.feed.service.ISgFormulaListService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgFormulaManagement; +import com.zhyc.module.feed.service.ISgFormulaManagementService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 配方管理Controller + * + * @author HashMap + * @date 2025-08-09 + */ +@RestController +@RequestMapping("/feed/FormulaManagement") +public class SgFormulaManagementController extends BaseController { + private final ISgFormulaManagementService sgFormulaManagementService; + private final ISgFormulaListService sgFormulaListService; + + public SgFormulaManagementController(ISgFormulaManagementService sgFormulaManagementService, ISgFormulaListService sgFormulaListService) { + this.sgFormulaManagementService = sgFormulaManagementService; + this.sgFormulaListService = sgFormulaListService; + } + + /** + * 查询配方管理列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaManagement:list')") + @GetMapping("/list") + public TableDataInfo list(SgFormulaManagement sgFormulaManagement) { + startPage(); + // 非查询详情时设定BatchId为0查询配方模板 + if (null != sgFormulaManagement && !Objects.equals(sgFormulaManagement.getQueryType(), "query")) { + sgFormulaManagement.setBatchId("0"); + } + List FormulaManagement = sgFormulaManagementService.selectSgFormulaManagementList(sgFormulaManagement); + for (SgFormulaManagement sgFormulaManagementItem : FormulaManagement) { + SgFormulaManagement query = new SgFormulaManagement(); + query.setFormulaId(sgFormulaManagementItem.getFormulaId()); + query.setQueryType("Sub"); + List subFormula = sgFormulaManagementService.selectSgFormulaManagementList(query); + sgFormulaManagementItem.setSubFormulaList(subFormula); + } + return getDataTable(FormulaManagement); + } + + /** + * 导出配方管理列表 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaManagement:export')") + @Log(title = "配方管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgFormulaManagement sgFormulaManagement) { + List list = sgFormulaManagementService.selectSgFormulaManagementList(sgFormulaManagement); + ExcelUtil util = new ExcelUtil<>(SgFormulaManagement.class); + util.exportExcel(response, list, "配方管理数据"); + } + + /** + * 获取配方管理详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaManagement:query')") + @GetMapping(value = "/{formulaId}") + public AjaxResult getInfo(@PathVariable("formulaId") String formulaId) { + return success(sgFormulaManagementService.selectSgFormulaManagementByFormulaId(formulaId)); + } + + /** + * 新增配方管理 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaManagement:add')") + @Log(title = "配方管理", businessType = BusinessType.INSERT) + @PostMapping + @Transactional(rollbackFor = Exception.class) + public AjaxResult add(@RequestBody SgFormulaManagement sgFormulaManagement) { + if (null == sgFormulaManagement) + throw new RuntimeException("ERROR: 数据为空"); + if (Objects.equals(sgFormulaManagement.getBatchId(), "0")) { + SgFormulaManagement exist = sgFormulaManagementService.selectSgFormulaManagementByFormulaId(sgFormulaManagement.getFormulaId()); + if (exist != null) { + throw new RuntimeException("WARNING: 配方编码重复,录入失败"); + } + } else { + SgFormulaManagement exist = new SgFormulaManagement(); + exist.setFormulaId(sgFormulaManagement.getFormulaId()); + exist.setBatchId(sgFormulaManagement.getBatchId()); + if (!sgFormulaManagementService.selectSgFormulaManagementList(exist).isEmpty()) { + throw new RuntimeException("WARNING: 批号重复,录入失败"); + } + } + List sgFormulaList = sgFormulaManagement.getSgFormulaList(); + for (SgFormulaList sgFormulaListItem : sgFormulaList) { + // 前端引用模板数据时会引用主键Code,在插入前置为空 + sgFormulaListItem.setCode(null); + sgFormulaListItem.setFormulaId(sgFormulaManagement.getFormulaId()); + sgFormulaListItem.setBatchId(sgFormulaManagement.getBatchId()); + sgFormulaListService.insertSgFormulaList(sgFormulaListItem); + } + return toAjax(sgFormulaManagementService.insertSgFormulaManagement(sgFormulaManagement)); + } + + /** + * 修改配方管理 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaManagement:edit')") + @Log(title = "配方管理", businessType = BusinessType.UPDATE) + @PutMapping + @Transactional(rollbackFor = Exception.class) + public AjaxResult edit(@RequestBody SgFormulaManagement sgFormulaManagement) { + List sgFormulaList = sgFormulaManagement.getSgFormulaList(); + if (null != sgFormulaManagement.getFormulaId() && null != sgFormulaManagement.getBatchId()) { + SgFormulaList delete = new SgFormulaList(); + delete.setFormulaId(sgFormulaManagement.getFormulaId()); + delete.setBatchId(sgFormulaManagement.getBatchId()); + sgFormulaListService.deleteSgFormulaListByFormulaIdAndBatchId(delete); + } else { + throw new RuntimeException("FormulaID & BatchID不能为空"); + } + + // 配方表同步更新 + for (SgFormulaList sgFormulaListItem : sgFormulaList) { + sgFormulaListItem.setBatchId(sgFormulaManagement.getBatchId()); + sgFormulaListItem.setFormulaId(sgFormulaManagement.getFormulaId()); + sgFormulaListService.insertSgFormulaList(sgFormulaListItem); + } + return toAjax(sgFormulaManagementService.updateSgFormulaManagement(sgFormulaManagement)); + } + + /** + * 删除配方管理 + */ + @PreAuthorize("@ss.hasPermi('feed:FormulaManagement:remove')") + @Log(title = "配方管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{formulaId}/{batchId}") + @Transactional(rollbackFor = Exception.class) + public AjaxResult remove(@PathVariable String formulaId, @PathVariable String batchId) { + SgFormulaManagement sgFormulaManagement = new SgFormulaManagement(); + sgFormulaManagement.setFormulaId(formulaId); + sgFormulaManagement.setBatchId(batchId); + if (sgFormulaManagement.getBatchId().equals("0")) { + sgFormulaManagement.setBatchId(null); + List list = sgFormulaManagementService.selectSgFormulaManagementList(sgFormulaManagement); + if (list.size() > 1) { + throw new RuntimeException("WARNING 该配方正被使用,无法删除"); + } + sgFormulaManagement.setBatchId(batchId); + } + // 前置检查完毕 执行删除 + sgFormulaManagement.setBatchId(batchId); + return toAjax(sgFormulaManagementService.deleteSgFormulaManagement(sgFormulaManagement)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgMaterialController.java b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgMaterialController.java new file mode 100644 index 0000000..8f4c789 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/controller/SgMaterialController.java @@ -0,0 +1,107 @@ +package com.zhyc.module.feed.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.feed.domain.SgMaterial; +import com.zhyc.module.feed.service.ISgMaterialService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 原料Controller + * + * @author HashMap + * @date 2025-08-11 + */ +@RestController +@RequestMapping("/feed/material") +public class SgMaterialController extends BaseController +{ + private final ISgMaterialService sgMaterialService; + + public SgMaterialController(ISgMaterialService sgMaterialService) { + this.sgMaterialService = sgMaterialService; + } + + /** + * 查询原料列表 + */ + @PreAuthorize("@ss.hasPermi('feed:material:list')") + @GetMapping("/list") + public TableDataInfo list(SgMaterial sgMaterial) + { + startPage(); + List list = sgMaterialService.selectSgMaterialList(sgMaterial); + return getDataTable(list); + } + + /** + * 导出原料列表 + */ + @PreAuthorize("@ss.hasPermi('feed:material:export')") + @Log(title = "原料", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SgMaterial sgMaterial) + { + List list = sgMaterialService.selectSgMaterialList(sgMaterial); + ExcelUtil util = new ExcelUtil<>(SgMaterial.class); + util.exportExcel(response, list, "原料数据"); + } + + /** + * 获取原料详细信息 + */ + @PreAuthorize("@ss.hasPermi('feed:material:query')") + @GetMapping(value = "/{materialId}") + public AjaxResult getInfo(@PathVariable("materialId") String materialId) + { + return success(sgMaterialService.selectSgMaterialByMaterialId(materialId)); + } + + /** + * 新增原料 + */ + @PreAuthorize("@ss.hasPermi('feed:material:add')") + @Log(title = "原料", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SgMaterial sgMaterial) + { + return toAjax(sgMaterialService.insertSgMaterial(sgMaterial)); + } + + /** + * 修改原料 + */ + @PreAuthorize("@ss.hasPermi('feed:material:edit')") + @Log(title = "原料", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SgMaterial sgMaterial) + { + return toAjax(sgMaterialService.updateSgMaterial(sgMaterial)); + } + + /** + * 删除原料 + */ + @PreAuthorize("@ss.hasPermi('feed:material:remove')") + @Log(title = "原料", businessType = BusinessType.DELETE) + @DeleteMapping("/{materialIds}") + public AjaxResult remove(@PathVariable String[] materialIds) + { + return toAjax(sgMaterialService.deleteSgMaterialByMaterialIds(materialIds)); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedDetails.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedDetails.java new file mode 100644 index 0000000..a1404e2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedDetails.java @@ -0,0 +1,82 @@ +package com.zhyc.module.feed.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 饲喂记录详情对象 sg_feed_details + * + * @author ruoyi + * @date 2025-08-01 + */ +public class SgFeedDetails extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 原料id */ + @Excel(name = "原料id") + private String fodder; + + /** 数量 */ + @Excel(name = "数量") + private Long number; + + /** 单位 */ + @Excel(name = "单位") + private String nuit; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setFodder(String fodder) + { + this.fodder = fodder; + } + + public String getFodder() + { + return fodder; + } + + public void setNumber(Long number) + { + this.number = number; + } + + public Long getNumber() + { + return number; + } + + public void setNuit(String nuit) + { + this.nuit = nuit; + } + + public String getNuit() + { + return nuit; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("fodder", getFodder()) + .append("number", getNumber()) + .append("nuit", getNuit()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedInfo.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedInfo.java new file mode 100644 index 0000000..37ed315 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedInfo.java @@ -0,0 +1,252 @@ +package com.zhyc.module.feed.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 饲喂记录对象 sg_feed_info + * + * @author ruoyi + * @date 2025-08-01 + */ +public class SgFeedInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 配方编码 */ + @Excel(name = "配方编码") + private Long formulaId; + + /** 羊舍 */ + @Excel(name = "羊舍") + private String sheepfoldId; + + /** 日均计划量 */ + @Excel(name = "日均计划量") + private Long average; + + /** 早上计划量(通过饲喂比例算出来) */ + @Excel(name = "早上计划量(通过饲喂比例算出来)") + private Long planMonring; + + /** 实际添加(早) */ + @Excel(name = "实际添加", readConverterExp = "早=") + private Long actualMonring; + + /** 中午计划量 */ + @Excel(name = "中午计划量") + private Long planNoon; + + /** 实际添加(中) */ + @Excel(name = "实际添加", readConverterExp = "中=") + private Long actualNoon; + + /** 下午计划量 */ + @Excel(name = "下午计划量") + private Long planEvenig; + + /** 实际添加(下) */ + @Excel(name = "实际添加", readConverterExp = "下=") + private Long actualEvening; + + /** 颗粒原料 */ + @Excel(name = "颗粒原料") + private Long particle; + + /** 其他原料 */ + @Excel(name = "其他原料") + private Long other; + + /** 补饲饲料 */ + @Excel(name = "补饲饲料") + private Long replenish; + + /** 饲喂日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "饲喂日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date planDate; + + /** 备注 */ + @Excel(name = "备注") + private String comment; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setFormulaId(Long formulaId) + { + this.formulaId = formulaId; + } + + public Long getFormulaId() + { + return formulaId; + } + + public void setSheepfoldId(String sheepfoldId) + { + this.sheepfoldId = sheepfoldId; + } + + public String getSheepfoldId() + { + return sheepfoldId; + } + + public void setAverage(Long average) + { + this.average = average; + } + + public Long getAverage() + { + return average; + } + + public void setPlanMonring(Long planMonring) + { + this.planMonring = planMonring; + } + + public Long getPlanMonring() + { + return planMonring; + } + + public void setActualMonring(Long actualMonring) + { + this.actualMonring = actualMonring; + } + + public Long getActualMonring() + { + return actualMonring; + } + + public void setPlanNoon(Long planNoon) + { + this.planNoon = planNoon; + } + + public Long getPlanNoon() + { + return planNoon; + } + + public void setActualNoon(Long actualNoon) + { + this.actualNoon = actualNoon; + } + + public Long getActualNoon() + { + return actualNoon; + } + + public void setPlanEvenig(Long planEvenig) + { + this.planEvenig = planEvenig; + } + + public Long getPlanEvenig() + { + return planEvenig; + } + + public void setActualEvening(Long actualEvening) + { + this.actualEvening = actualEvening; + } + + public Long getActualEvening() + { + return actualEvening; + } + + public void setParticle(Long particle) + { + this.particle = particle; + } + + public Long getParticle() + { + return particle; + } + + public void setOther(Long other) + { + this.other = other; + } + + public Long getOther() + { + return other; + } + + public void setReplenish(Long replenish) + { + this.replenish = replenish; + } + + public Long getReplenish() + { + return replenish; + } + + public void setPlanDate(Date planDate) + { + this.planDate = planDate; + } + + public Date getPlanDate() + { + return planDate; + } + + public void setComment(String comment) + { + this.comment = comment; + } + + public String getComment() + { + return comment; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("formulaId", getFormulaId()) + .append("sheepfoldId", getSheepfoldId()) + .append("average", getAverage()) + .append("planMonring", getPlanMonring()) + .append("actualMonring", getActualMonring()) + .append("planNoon", getPlanNoon()) + .append("actualNoon", getActualNoon()) + .append("planEvenig", getPlanEvenig()) + .append("actualEvening", getActualEvening()) + .append("particle", getParticle()) + .append("other", getOther()) + .append("replenish", getReplenish()) + .append("planDate", getPlanDate()) + .append("comment", getComment()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedPlan.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedPlan.java new file mode 100644 index 0000000..596eac2 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedPlan.java @@ -0,0 +1,132 @@ +package com.zhyc.module.feed.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 饲喂计划对象 sg_feed_plan + * + * @author HashMap + * @date 2025-08-08 + */ +@Setter +@Getter +public class SgFeedPlan extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 创建日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date createDate; + + /** 配方编码 */ + @Excel(name = "配方编码") + private String formulaId; + + /** 羊舍 */ + @Excel(name = "羊舍") + private Long sheepHouseId; + + /** 羊只数量 */ + @Excel(name = "羊只数量") + private Long sheepCount; + + /** 日均计划量 */ + @Excel(name = "日均计划量") + private Long planDailySize; + + /** 计划量(早) */ + @Excel(name = "计划量(早)") + private Long planMorningSize; + + /** 计划总量(早) */ + @Excel(name = "计划总量(早)") + private Long planMorningTotal; + + /** 饲喂比例(早) */ + @Excel(name = "饲喂比例(早)") + private Long ratioMorning; + + /** 实际量(早) */ + @Excel(name = "实际量(早)") + private Long actualMorningSize; + + /** 计划量(中) */ + @Excel(name = "计划量(中)") + private Long planNoonSize; + + /** 计划总量(中) */ + @Excel(name = "计划总量(中)") + private Long planNoonTotal; + + /** 实际量(中) */ + @Excel(name = "实际量(中)") + private Long actualNoonSize; + + /** 饲喂比例(中) */ + @Excel(name = "饲喂比例(中)") + private Long ratioNoon; + + /** 计划量(下) */ + @Excel(name = "计划量(下)") + private Long planAfternoonSize; + + /** 计划总量(下) */ + @Excel(name = "计划总量(下)") + private Long planAfternoonTotal; + + /** 实际量(下) */ + @Excel(name = "实际量(下)") + private Long actualAfternoonSize; + + /** 饲喂比例(下) */ + @Excel(name = "饲喂比例(下)") + private Long ratioAfternoon; + + /** 计划饲喂总量 */ + @Excel(name = "计划饲喂总量") + private Long planFeedTotal; + + /** 饲草班人员 */ + @Excel(name = "饲草班人员") + private String zookeeper; + + /** 饲喂计划日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "饲喂计划日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date planDate; + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("createDate", getCreateDate()) + .append("formulaId", getFormulaId()) + .append("sheepHouseId", getSheepHouseId()) + .append("sheepCount", getSheepCount()) + .append("planDailySize", getPlanDailySize()) + .append("planMorningSize", getPlanMorningSize()) + .append("planMorningTotal", getPlanMorningTotal()) + .append("ratioMorning", getRatioMorning()) + .append("actualMorningSize", getActualMorningSize()) + .append("planNoonSize", getPlanNoonSize()) + .append("planNoonTotal", getPlanNoonTotal()) + .append("actualNoonSize", getActualNoonSize()) + .append("ratioNoon", getRatioNoon()) + .append("planAfternoonSize", getPlanAfternoonSize()) + .append("planAfternoonTotal", getPlanAfternoonTotal()) + .append("actualAfternoonSize", getActualAfternoonSize()) + .append("ratioAfternoon", getRatioAfternoon()) + .append("planFeedTotal", getPlanFeedTotal()) + .append("zookeeper", getZookeeper()) + .append("planDate", getPlanDate()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedRatio.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedRatio.java new file mode 100644 index 0000000..5e3834e --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFeedRatio.java @@ -0,0 +1,82 @@ +package com.zhyc.module.feed.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 饲喂比例对象 sg_feed_ratio + * + * @author ruoyi + * @date 2025-08-01 + */ +public class SgFeedRatio extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 早晨计划比列 */ + @Excel(name = "早晨计划比列") + private String morning; + + /** 中午计划比例 */ + @Excel(name = "中午计划比例") + private String noon; + + /** 下午计划比例 */ + @Excel(name = "下午计划比例") + private String evening; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setMorning(String morning) + { + this.morning = morning; + } + + public String getMorning() + { + return morning; + } + + public void setNoon(String noon) + { + this.noon = noon; + } + + public String getNoon() + { + return noon; + } + + public void setEvening(String evening) + { + this.evening = evening; + } + + public String getEvening() + { + return evening; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("morning", getMorning()) + .append("noon", getNoon()) + .append("evening", getEvening()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFodder.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFodder.java new file mode 100644 index 0000000..3b00b2d --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFodder.java @@ -0,0 +1,67 @@ +package com.zhyc.module.feed.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 原料对象 sg_fodder + * + * @author ruoyi + * @date 2025-08-01 + */ +public class SgFodder extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 名称 */ + @Excel(name = "名称") + private String name; + + /** 0补饲饲料1配方原料2颗粒原料 */ + @Excel(name = "0补饲饲料1配方原料2颗粒原料") + private Long fodderType; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + + public void setFodderType(Long fodderType) + { + this.fodderType = fodderType; + } + + public Long getFodderType() + { + return fodderType; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("name", getName()) + .append("fodderType", getFodderType()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFormulaList.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFormulaList.java new file mode 100644 index 0000000..03ab542 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFormulaList.java @@ -0,0 +1,62 @@ +package com.zhyc.module.feed.domain; + +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 配方列表对象 sg_formula_list + * + * @author HashMap + * @date 2025-08-09 + */ +@Setter +@Getter +public class SgFormulaList extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 序号 */ + private Long code; + + /** 配方编号 */ + private String formulaId; + + /** 配方编号 */ + private String batchId; + /** 原料编号 */ + @Excel(name = "原料编号") + private String materialId; + + /** 原料名称 */ + @Excel(name = "原料名称") + private String materialName; + + /** 比例 */ + @Excel(name = "比例") + private Long ratio; + + /** 颗粒原料 */ + @Excel(name = "颗粒原料") + private String isGranular; + + /** 补饲 */ + @Excel(name = "补饲") + private String isSupplement; + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("code", getCode()) + .append("formulaId", getFormulaId()) + .append("materialId", getMaterialId()) + .append("materialName", getMaterialName()) + .append("ratio", getRatio()) + .append("isGranular", getIsGranular()) + .append("isSupplement", getIsSupplement()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFormulaManagement.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFormulaManagement.java new file mode 100644 index 0000000..3fa8563 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgFormulaManagement.java @@ -0,0 +1,79 @@ +package com.zhyc.module.feed.domain; + +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 配方管理对象 sg_formula_management + * + * @author HashMap + * @date 2025-08-09 + */ +@Setter +@Getter +public class SgFormulaManagement extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 配方编号 */ + private String formulaId; + + /** 饲养阶段 */ + @Excel(name = "饲养阶段") + private String feedStage; + + /** 批号 */ + @Excel(name = "批号") + private String batchId; + + /** 开始使用时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始使用时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date useStartDate; + + /** 结束使用时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束使用时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date useEndDate; + + /** 使用状态 */ + @Excel(name = "使用状态") + private String useState; + + /** 备注 */ + @Excel(name = "备注") + private String remark; + + /** 配方列表 */ + private List sgFormulaList; + + /** 子配方 */ + private List subFormulaList; + + /** 查询类型 * + * Sub : 子配方查询 + * query : 类型查询 + * */ + private String queryType; + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("formulaId", getFormulaId()) + .append("feedStage", getFeedStage()) + .append("batchId", getBatchId()) + .append("useStartDate", getUseStartDate()) + .append("useEndDate", getUseEndDate()) + .append("useState", getUseState()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgMaterial.java b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgMaterial.java new file mode 100644 index 0000000..a9634be --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/domain/SgMaterial.java @@ -0,0 +1,15 @@ +package com.zhyc.module.feed.domain; + +import com.zhyc.common.core.domain.BaseEntity; +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class SgMaterial extends BaseEntity { + private static final long serialVersionUID = 1L; + + private String materialId; + private String materialName; + private String isGranular; +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedDetailsMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedDetailsMapper.java new file mode 100644 index 0000000..2817118 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedDetailsMapper.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.mapper; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedDetails; + +/** + * 饲喂记录详情Mapper接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface SgFeedDetailsMapper +{ + /** + * 查询饲喂记录详情 + * + * @param id 饲喂记录详情主键 + * @return 饲喂记录详情 + */ + public SgFeedDetails selectSgFeedDetailsById(Long id); + + /** + * 查询饲喂记录详情列表 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 饲喂记录详情集合 + */ + public List selectSgFeedDetailsList(SgFeedDetails sgFeedDetails); + + /** + * 新增饲喂记录详情 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 结果 + */ + public int insertSgFeedDetails(SgFeedDetails sgFeedDetails); + + /** + * 修改饲喂记录详情 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 结果 + */ + public int updateSgFeedDetails(SgFeedDetails sgFeedDetails); + + /** + * 删除饲喂记录详情 + * + * @param id 饲喂记录详情主键 + * @return 结果 + */ + public int deleteSgFeedDetailsById(Long id); + + /** + * 批量删除饲喂记录详情 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSgFeedDetailsByIds(Long[] ids); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedInfoMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedInfoMapper.java new file mode 100644 index 0000000..11ea688 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedInfoMapper.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.mapper; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedInfo; + +/** + * 饲喂记录Mapper接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface SgFeedInfoMapper +{ + /** + * 查询饲喂记录 + * + * @param id 饲喂记录主键 + * @return 饲喂记录 + */ + public SgFeedInfo selectSgFeedInfoById(Long id); + + /** + * 查询饲喂记录列表 + * + * @param sgFeedInfo 饲喂记录 + * @return 饲喂记录集合 + */ + public List selectSgFeedInfoList(SgFeedInfo sgFeedInfo); + + /** + * 新增饲喂记录 + * + * @param sgFeedInfo 饲喂记录 + * @return 结果 + */ + public int insertSgFeedInfo(SgFeedInfo sgFeedInfo); + + /** + * 修改饲喂记录 + * + * @param sgFeedInfo 饲喂记录 + * @return 结果 + */ + public int updateSgFeedInfo(SgFeedInfo sgFeedInfo); + + /** + * 删除饲喂记录 + * + * @param id 饲喂记录主键 + * @return 结果 + */ + public int deleteSgFeedInfoById(Long id); + + /** + * 批量删除饲喂记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSgFeedInfoByIds(Long[] ids); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedPlanMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedPlanMapper.java new file mode 100644 index 0000000..7ea4493 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedPlanMapper.java @@ -0,0 +1,64 @@ +package com.zhyc.module.feed.mapper; + +import java.util.Date; +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedPlan; +import org.apache.ibatis.annotations.Mapper; + +/** + * 饲喂计划Mapper接口 + * + * @author HashMap + * @date 2025-08-08 + */ +@Mapper +public interface SgFeedPlanMapper +{ + /** + * 查询饲喂计划 + * + * @param createDate 饲喂计划主键 + * @return 饲喂计划 + */ + SgFeedPlan selectSgFeedPlanByCreateDate(Date createDate); + + /** + * 查询饲喂计划列表 + * + * @param sgFeedPlan 饲喂计划 + * @return 饲喂计划集合 + */ + List selectSgFeedPlanList(SgFeedPlan sgFeedPlan); + + /** + * 新增饲喂计划 + * + * @param sgFeedPlan 饲喂计划 + * @return 结果 + */ + int insertSgFeedPlan(SgFeedPlan sgFeedPlan); + + /** + * 修改饲喂计划 + * + * @param sgFeedPlan 饲喂计划 + * @return 结果 + */ + int updateSgFeedPlan(SgFeedPlan sgFeedPlan); + + /** + * 删除饲喂计划 + * + * @param createDate 饲喂计划主键 + * @return 结果 + */ + int deleteSgFeedPlanByCreateDate(Date createDate); + + /** + * 批量删除饲喂计划 + * + * @param createDates 需要删除的数据主键集合 + * @return 结果 + */ + int deleteSgFeedPlanByCreateDates(Date[] createDates); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedRatioMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedRatioMapper.java new file mode 100644 index 0000000..5dbd1ce --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFeedRatioMapper.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.mapper; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedRatio; + +/** + * 饲喂比例Mapper接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface SgFeedRatioMapper +{ + /** + * 查询饲喂比例 + * + * @param id 饲喂比例主键 + * @return 饲喂比例 + */ + public SgFeedRatio selectSgFeedRatioById(Long id); + + /** + * 查询饲喂比例列表 + * + * @param sgFeedRatio 饲喂比例 + * @return 饲喂比例集合 + */ + public List selectSgFeedRatioList(SgFeedRatio sgFeedRatio); + + /** + * 新增饲喂比例 + * + * @param sgFeedRatio 饲喂比例 + * @return 结果 + */ + public int insertSgFeedRatio(SgFeedRatio sgFeedRatio); + + /** + * 修改饲喂比例 + * + * @param sgFeedRatio 饲喂比例 + * @return 结果 + */ + public int updateSgFeedRatio(SgFeedRatio sgFeedRatio); + + /** + * 删除饲喂比例 + * + * @param id 饲喂比例主键 + * @return 结果 + */ + public int deleteSgFeedRatioById(Long id); + + /** + * 批量删除饲喂比例 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSgFeedRatioByIds(Long[] ids); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFodderMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFodderMapper.java new file mode 100644 index 0000000..c916e24 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFodderMapper.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.mapper; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFodder; + +/** + * 原料Mapper接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface SgFodderMapper +{ + /** + * 查询原料 + * + * @param id 原料主键 + * @return 原料 + */ + public SgFodder selectSgFodderById(Long id); + + /** + * 查询原料列表 + * + * @param sgFodder 原料 + * @return 原料集合 + */ + public List selectSgFodderList(SgFodder sgFodder); + + /** + * 新增原料 + * + * @param sgFodder 原料 + * @return 结果 + */ + public int insertSgFodder(SgFodder sgFodder); + + /** + * 修改原料 + * + * @param sgFodder 原料 + * @return 结果 + */ + public int updateSgFodder(SgFodder sgFodder); + + /** + * 删除原料 + * + * @param id 原料主键 + * @return 结果 + */ + public int deleteSgFodderById(Long id); + + /** + * 批量删除原料 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSgFodderByIds(Long[] ids); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFormulaListMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFormulaListMapper.java new file mode 100644 index 0000000..4d13b9e --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFormulaListMapper.java @@ -0,0 +1,71 @@ +package com.zhyc.module.feed.mapper; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFormulaList; +import org.apache.ibatis.annotations.Mapper; + +/** + * 配方列表Mapper接口 + * + * @author HashMap + * @date 2025-08-09 + */ +@Mapper +public interface SgFormulaListMapper +{ + /** + * 查询配方列表 + * + * @param code 配方列表主键 + * @return 配方列表 + */ + SgFormulaList selectSgFormulaListByCode(Long code); + + /** + * 查询配方列表列表 + * + * @param sgFormulaList 配方列表 + * @return 配方列表集合 + */ + List selectSgFormulaListList(SgFormulaList sgFormulaList); + + /** + * 新增配方列表 + * + * @param sgFormulaList 配方列表 + * @return 结果 + */ + int insertSgFormulaList(SgFormulaList sgFormulaList); + + /** + * 修改配方列表 + * + * @param sgFormulaList 配方列表 + * @return 结果 + */ + int updateSgFormulaList(SgFormulaList sgFormulaList); + + /** + * 删除配方列表 + * + * @param code 配方列表主键 + * @return 结果 + */ + int deleteSgFormulaListByCode(Long code); + + /** + * 批量删除配方列表 + * + * @param codes 需要删除的数据主键集合 + * @return 结果 + */ + int deleteSgFormulaListByCodes(Long[] codes); + + /** + * 批量删除配方列表 + * + * @param sgFormulaList 参数实体 + * @return 结果 + */ + int deleteSgFormulaListByFormulaIdAndBatchId(SgFormulaList sgFormulaList); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFormulaManagementMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFormulaManagementMapper.java new file mode 100644 index 0000000..ff782e9 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgFormulaManagementMapper.java @@ -0,0 +1,65 @@ +package com.zhyc.module.feed.mapper; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFormulaManagement; +import org.apache.ibatis.annotations.Mapper; + +/** + * 配方管理Mapper接口 + * + * @author HashMap + * @date 2025-08-09 + */ +@Mapper +public interface SgFormulaManagementMapper +{ + /** + * 查询配方管理 + * + * @param formulaId 配方管理主键 + * @return 配方管理 + */ + SgFormulaManagement selectSgFormulaManagementByFormulaId(String formulaId); + + /** + * 查询配方管理列表 + * + * @param sgFormulaManagement 配方管理 + * @return 配方管理集合 + */ + List selectSgFormulaManagementList(SgFormulaManagement sgFormulaManagement); + + /** + * 新增配方管理 + * + * @param sgFormulaManagement 配方管理 + * @return 结果 + */ + int insertSgFormulaManagement(SgFormulaManagement sgFormulaManagement); + + /** + * 修改配方管理 + * + * @param sgFormulaManagement 配方管理 + * @return 结果 + */ + int updateSgFormulaManagement(SgFormulaManagement sgFormulaManagement); + + /** + * 删除配方管理 + * + * @param formulaId 配方管理主键 + * @return 结果 + */ + int deleteSgFormulaManagementByFormulaId(String formulaId); + + /** + * 批量删除配方管理 + * + * @param formulaIds 需要删除的数据主键集合 + * @return 结果 + */ + int deleteSgFormulaManagementByFormulaIds(String[] formulaIds); + + int deleteSgFormulaManagement(SgFormulaManagement sgFormulaManagement); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgMaterialMapper.java b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgMaterialMapper.java new file mode 100644 index 0000000..a7a3d70 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/mapper/SgMaterialMapper.java @@ -0,0 +1,63 @@ +package com.zhyc.module.feed.mapper; + +import java.util.List; +import com.zhyc.module.feed.domain.SgMaterial; +import org.apache.ibatis.annotations.Mapper; + +/** + * 原料Mapper接口 + * + * @author HashMap + * @date 2025-08-11 + */ +@Mapper +public interface SgMaterialMapper +{ + /** + * 查询原料 + * + * @param materialId 原料主键 + * @return 原料 + */ + public SgMaterial selectSgMaterialByMaterialId(String materialId); + + /** + * 查询原料列表 + * + * @param sgMaterial 原料 + * @return 原料集合 + */ + public List selectSgMaterialList(SgMaterial sgMaterial); + + /** + * 新增原料 + * + * @param sgMaterial 原料 + * @return 结果 + */ + public int insertSgMaterial(SgMaterial sgMaterial); + + /** + * 修改原料 + * + * @param sgMaterial 原料 + * @return 结果 + */ + public int updateSgMaterial(SgMaterial sgMaterial); + + /** + * 删除原料 + * + * @param materialId 原料主键 + * @return 结果 + */ + public int deleteSgMaterialByMaterialId(String materialId); + + /** + * 批量删除原料 + * + * @param materialIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSgMaterialByMaterialIds(String[] materialIds); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedDetailsService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedDetailsService.java new file mode 100644 index 0000000..ac695f8 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedDetailsService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.service; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedDetails; + +/** + * 饲喂记录详情Service接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface ISgFeedDetailsService +{ + /** + * 查询饲喂记录详情 + * + * @param id 饲喂记录详情主键 + * @return 饲喂记录详情 + */ + public SgFeedDetails selectSgFeedDetailsById(Long id); + + /** + * 查询饲喂记录详情列表 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 饲喂记录详情集合 + */ + public List selectSgFeedDetailsList(SgFeedDetails sgFeedDetails); + + /** + * 新增饲喂记录详情 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 结果 + */ + public int insertSgFeedDetails(SgFeedDetails sgFeedDetails); + + /** + * 修改饲喂记录详情 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 结果 + */ + public int updateSgFeedDetails(SgFeedDetails sgFeedDetails); + + /** + * 批量删除饲喂记录详情 + * + * @param ids 需要删除的饲喂记录详情主键集合 + * @return 结果 + */ + public int deleteSgFeedDetailsByIds(Long[] ids); + + /** + * 删除饲喂记录详情信息 + * + * @param id 饲喂记录详情主键 + * @return 结果 + */ + public int deleteSgFeedDetailsById(Long id); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedInfoService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedInfoService.java new file mode 100644 index 0000000..8d412b8 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedInfoService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.service; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedInfo; + +/** + * 饲喂记录Service接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface ISgFeedInfoService +{ + /** + * 查询饲喂记录 + * + * @param id 饲喂记录主键 + * @return 饲喂记录 + */ + public SgFeedInfo selectSgFeedInfoById(Long id); + + /** + * 查询饲喂记录列表 + * + * @param sgFeedInfo 饲喂记录 + * @return 饲喂记录集合 + */ + public List selectSgFeedInfoList(SgFeedInfo sgFeedInfo); + + /** + * 新增饲喂记录 + * + * @param sgFeedInfo 饲喂记录 + * @return 结果 + */ + public int insertSgFeedInfo(SgFeedInfo sgFeedInfo); + + /** + * 修改饲喂记录 + * + * @param sgFeedInfo 饲喂记录 + * @return 结果 + */ + public int updateSgFeedInfo(SgFeedInfo sgFeedInfo); + + /** + * 批量删除饲喂记录 + * + * @param ids 需要删除的饲喂记录主键集合 + * @return 结果 + */ + public int deleteSgFeedInfoByIds(Long[] ids); + + /** + * 删除饲喂记录信息 + * + * @param id 饲喂记录主键 + * @return 结果 + */ + public int deleteSgFeedInfoById(Long id); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedPlanService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedPlanService.java new file mode 100644 index 0000000..3b172e0 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedPlanService.java @@ -0,0 +1,62 @@ +package com.zhyc.module.feed.service; + +import java.util.Date; +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedPlan; + +/** + * 饲喂计划Service接口 + * + * @author HashMap + * @date 2025-08-08 + */ +public interface ISgFeedPlanService +{ + /** + * 查询饲喂计划 + * + * @param createDate 饲喂计划主键 + * @return 饲喂计划 + */ + SgFeedPlan selectSgFeedPlanByCreateDate(Date createDate); + + /** + * 查询饲喂计划列表 + * + * @param sgFeedPlan 饲喂计划 + * @return 饲喂计划集合 + */ + List selectSgFeedPlanList(SgFeedPlan sgFeedPlan); + + /** + * 新增饲喂计划 + * + * @param sgFeedPlan 饲喂计划 + * @return 结果 + */ + int insertSgFeedPlan(SgFeedPlan sgFeedPlan); + + /** + * 修改饲喂计划 + * + * @param sgFeedPlan 饲喂计划 + * @return 结果 + */ + int updateSgFeedPlan(SgFeedPlan sgFeedPlan); + + /** + * 批量删除饲喂计划 + * + * @param createDates 需要删除的饲喂计划主键集合 + * @return 结果 + */ + int deleteSgFeedPlanByCreateDates(Date[] createDates); + + /** + * 删除饲喂计划信息 + * + * @param createDate 饲喂计划主键 + * @return 结果 + */ + int deleteSgFeedPlanByCreateDate(Date createDate); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedRatioService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedRatioService.java new file mode 100644 index 0000000..804130f --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFeedRatioService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.service; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFeedRatio; + +/** + * 饲喂比例Service接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface ISgFeedRatioService +{ + /** + * 查询饲喂比例 + * + * @param id 饲喂比例主键 + * @return 饲喂比例 + */ + public SgFeedRatio selectSgFeedRatioById(Long id); + + /** + * 查询饲喂比例列表 + * + * @param sgFeedRatio 饲喂比例 + * @return 饲喂比例集合 + */ + public List selectSgFeedRatioList(SgFeedRatio sgFeedRatio); + + /** + * 新增饲喂比例 + * + * @param sgFeedRatio 饲喂比例 + * @return 结果 + */ + public int insertSgFeedRatio(SgFeedRatio sgFeedRatio); + + /** + * 修改饲喂比例 + * + * @param sgFeedRatio 饲喂比例 + * @return 结果 + */ + public int updateSgFeedRatio(SgFeedRatio sgFeedRatio); + + /** + * 批量删除饲喂比例 + * + * @param ids 需要删除的饲喂比例主键集合 + * @return 结果 + */ + public int deleteSgFeedRatioByIds(Long[] ids); + + /** + * 删除饲喂比例信息 + * + * @param id 饲喂比例主键 + * @return 结果 + */ + public int deleteSgFeedRatioById(Long id); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFodderService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFodderService.java new file mode 100644 index 0000000..3ddac8f --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFodderService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.service; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFodder; + +/** + * 原料Service接口 + * + * @author ruoyi + * @date 2025-08-01 + */ +public interface ISgFodderService +{ + /** + * 查询原料 + * + * @param id 原料主键 + * @return 原料 + */ + public SgFodder selectSgFodderById(Long id); + + /** + * 查询原料列表 + * + * @param sgFodder 原料 + * @return 原料集合 + */ + public List selectSgFodderList(SgFodder sgFodder); + + /** + * 新增原料 + * + * @param sgFodder 原料 + * @return 结果 + */ + public int insertSgFodder(SgFodder sgFodder); + + /** + * 修改原料 + * + * @param sgFodder 原料 + * @return 结果 + */ + public int updateSgFodder(SgFodder sgFodder); + + /** + * 批量删除原料 + * + * @param ids 需要删除的原料主键集合 + * @return 结果 + */ + public int deleteSgFodderByIds(Long[] ids); + + /** + * 删除原料信息 + * + * @param id 原料主键 + * @return 结果 + */ + public int deleteSgFodderById(Long id); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFormulaListService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFormulaListService.java new file mode 100644 index 0000000..288308d --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFormulaListService.java @@ -0,0 +1,63 @@ +package com.zhyc.module.feed.service; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFormulaList; + +/** + * 配方列表Service接口 + * + * @author HashMap + * @date 2025-08-09 + */ +public interface ISgFormulaListService +{ + /** + * 查询配方列表 + * + * @param code 配方列表主键 + * @return 配方列表 + */ + SgFormulaList selectSgFormulaListByCode(Long code); + + /** + * 查询配方列表列表 + * + * @param sgFormulaList 配方列表 + * @return 配方列表集合 + */ + List selectSgFormulaListList(SgFormulaList sgFormulaList); + + /** + * 新增配方列表 + * + * @param sgFormulaList 配方列表 + * @return 结果 + */ + int insertSgFormulaList(SgFormulaList sgFormulaList); + + /** + * 修改配方列表 + * + * @param sgFormulaList 配方列表 + * @return 结果 + */ + int updateSgFormulaList(SgFormulaList sgFormulaList); + + /** + * 批量删除配方列表 + * + * @param codes 需要删除的配方列表主键集合 + * @return 结果 + */ + int deleteSgFormulaListByCodes(Long[] codes); + + /** + * 删除配方列表信息 + * + * @param code 配方列表主键 + * @return 结果 + */ + int deleteSgFormulaListByCode(Long code); + + int deleteSgFormulaListByFormulaIdAndBatchId(SgFormulaList sgFormulaList); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFormulaManagementService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFormulaManagementService.java new file mode 100644 index 0000000..55d0156 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgFormulaManagementService.java @@ -0,0 +1,66 @@ +package com.zhyc.module.feed.service; + +import java.util.List; +import com.zhyc.module.feed.domain.SgFormulaManagement; + +/** + * 配方管理Service接口 + * + * @author HashMap + * @date 2025-08-09 + */ +public interface ISgFormulaManagementService +{ + /** + * 查询配方管理 + * + * @param formulaId 配方管理主键 + * @return 配方管理 + */ + SgFormulaManagement selectSgFormulaManagementByFormulaId(String formulaId); + + /** + * 查询配方管理列表 + * + * @param sgFormulaManagement 配方管理 + * @return 配方管理集合 + */ + List selectSgFormulaManagementList(SgFormulaManagement sgFormulaManagement); + + /** + * 新增配方管理 + * + * @param sgFormulaManagement 配方管理 + * @return 结果 + */ + int insertSgFormulaManagement(SgFormulaManagement sgFormulaManagement); + + /** + * 修改配方管理 + * + * @param sgFormulaManagement 配方管理 + * @return 结果 + */ + int updateSgFormulaManagement(SgFormulaManagement sgFormulaManagement); + + /** + * 批量删除配方管理 + * + * @param formulaIds 需要删除的配方管理主键集合 + * @return 结果 + */ + int deleteSgFormulaManagementByFormulaIds(String[] formulaIds); + + /** + * 删除配方管理信息 + * + * @param formulaId 配方管理主键 + * @return 结果 + */ + int deleteSgFormulaManagementByFormulaId(String formulaId); + + /*** + * 删除配方管理信息 + */ + int deleteSgFormulaManagement(SgFormulaManagement sgFormulaManagement); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgMaterialService.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgMaterialService.java new file mode 100644 index 0000000..ba1e6ac --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/ISgMaterialService.java @@ -0,0 +1,61 @@ +package com.zhyc.module.feed.service; + +import java.util.List; +import com.zhyc.module.feed.domain.SgMaterial; + +/** + * 原料Service接口 + * + * @author HashMap + * @date 2025-08-11 + */ +public interface ISgMaterialService +{ + /** + * 查询原料 + * + * @param materialId 原料主键 + * @return 原料 + */ + SgMaterial selectSgMaterialByMaterialId(String materialId); + + /** + * 查询原料列表 + * + * @param sgMaterial 原料 + * @return 原料集合 + */ + List selectSgMaterialList(SgMaterial sgMaterial); + + /** + * 新增原料 + * + * @param sgMaterial 原料 + * @return 结果 + */ + int insertSgMaterial(SgMaterial sgMaterial); + + /** + * 修改原料 + * + * @param sgMaterial 原料 + * @return 结果 + */ + int updateSgMaterial(SgMaterial sgMaterial); + + /** + * 批量删除原料 + * + * @param materialIds 需要删除的原料主键集合 + * @return 结果 + */ + int deleteSgMaterialByMaterialIds(String[] materialIds); + + /** + * 删除原料信息 + * + * @param materialId 原料主键 + * @return 结果 + */ + int deleteSgMaterialByMaterialId(String materialId); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedDetailsServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedDetailsServiceImpl.java new file mode 100644 index 0000000..2f58d33 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedDetailsServiceImpl.java @@ -0,0 +1,93 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgFeedDetailsMapper; +import com.zhyc.module.feed.domain.SgFeedDetails; +import com.zhyc.module.feed.service.ISgFeedDetailsService; + +/** + * 饲喂记录详情Service业务层处理 + * + * @author ruoyi + * @date 2025-08-01 + */ +@Service +public class SgFeedDetailsServiceImpl implements ISgFeedDetailsService +{ + @Autowired + private SgFeedDetailsMapper sgFeedDetailsMapper; + + /** + * 查询饲喂记录详情 + * + * @param id 饲喂记录详情主键 + * @return 饲喂记录详情 + */ + @Override + public SgFeedDetails selectSgFeedDetailsById(Long id) + { + return sgFeedDetailsMapper.selectSgFeedDetailsById(id); + } + + /** + * 查询饲喂记录详情列表 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 饲喂记录详情 + */ + @Override + public List selectSgFeedDetailsList(SgFeedDetails sgFeedDetails) + { + return sgFeedDetailsMapper.selectSgFeedDetailsList(sgFeedDetails); + } + + /** + * 新增饲喂记录详情 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 结果 + */ + @Override + public int insertSgFeedDetails(SgFeedDetails sgFeedDetails) + { + return sgFeedDetailsMapper.insertSgFeedDetails(sgFeedDetails); + } + + /** + * 修改饲喂记录详情 + * + * @param sgFeedDetails 饲喂记录详情 + * @return 结果 + */ + @Override + public int updateSgFeedDetails(SgFeedDetails sgFeedDetails) + { + return sgFeedDetailsMapper.updateSgFeedDetails(sgFeedDetails); + } + + /** + * 批量删除饲喂记录详情 + * + * @param ids 需要删除的饲喂记录详情主键 + * @return 结果 + */ + @Override + public int deleteSgFeedDetailsByIds(Long[] ids) + { + return sgFeedDetailsMapper.deleteSgFeedDetailsByIds(ids); + } + + /** + * 删除饲喂记录详情信息 + * + * @param id 饲喂记录详情主键 + * @return 结果 + */ + @Override + public int deleteSgFeedDetailsById(Long id) + { + return sgFeedDetailsMapper.deleteSgFeedDetailsById(id); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedInfoServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedInfoServiceImpl.java new file mode 100644 index 0000000..ea2f711 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedInfoServiceImpl.java @@ -0,0 +1,95 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.List; +import com.zhyc.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgFeedInfoMapper; +import com.zhyc.module.feed.domain.SgFeedInfo; +import com.zhyc.module.feed.service.ISgFeedInfoService; + +/** + * 饲喂记录Service业务层处理 + * + * @author ruoyi + * @date 2025-08-01 + */ +@Service +public class SgFeedInfoServiceImpl implements ISgFeedInfoService +{ + @Autowired + private SgFeedInfoMapper sgFeedInfoMapper; + + /** + * 查询饲喂记录 + * + * @param id 饲喂记录主键 + * @return 饲喂记录 + */ + @Override + public SgFeedInfo selectSgFeedInfoById(Long id) + { + return sgFeedInfoMapper.selectSgFeedInfoById(id); + } + + /** + * 查询饲喂记录列表 + * + * @param sgFeedInfo 饲喂记录 + * @return 饲喂记录 + */ + @Override + public List selectSgFeedInfoList(SgFeedInfo sgFeedInfo) + { + return sgFeedInfoMapper.selectSgFeedInfoList(sgFeedInfo); + } + + /** + * 新增饲喂记录 + * + * @param sgFeedInfo 饲喂记录 + * @return 结果 + */ + @Override + public int insertSgFeedInfo(SgFeedInfo sgFeedInfo) + { + sgFeedInfo.setCreateTime(DateUtils.getNowDate()); + return sgFeedInfoMapper.insertSgFeedInfo(sgFeedInfo); + } + + /** + * 修改饲喂记录 + * + * @param sgFeedInfo 饲喂记录 + * @return 结果 + */ + @Override + public int updateSgFeedInfo(SgFeedInfo sgFeedInfo) + { + return sgFeedInfoMapper.updateSgFeedInfo(sgFeedInfo); + } + + /** + * 批量删除饲喂记录 + * + * @param ids 需要删除的饲喂记录主键 + * @return 结果 + */ + @Override + public int deleteSgFeedInfoByIds(Long[] ids) + { + return sgFeedInfoMapper.deleteSgFeedInfoByIds(ids); + } + + /** + * 删除饲喂记录信息 + * + * @param id 饲喂记录主键 + * @return 结果 + */ + @Override + public int deleteSgFeedInfoById(Long id) + { + return sgFeedInfoMapper.deleteSgFeedInfoById(id); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedPlanServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedPlanServiceImpl.java new file mode 100644 index 0000000..937cd32 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedPlanServiceImpl.java @@ -0,0 +1,99 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.Date; +import java.util.List; + +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgFeedPlanMapper; +import com.zhyc.module.feed.domain.SgFeedPlan; +import com.zhyc.module.feed.service.ISgFeedPlanService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 饲喂计划Service业务层处理 + * + * @author HashMap + * @date 2025-08-08 + */ +@Service +@Transactional(rollbackFor=Exception.class) +public class SgFeedPlanServiceImpl implements ISgFeedPlanService +{ + private final SgFeedPlanMapper sgFeedPlanMapper; + + public SgFeedPlanServiceImpl(SgFeedPlanMapper sgFeedPlanMapper) { + this.sgFeedPlanMapper = sgFeedPlanMapper; + } + + /** + * 查询饲喂计划 + * + * @param createDate 饲喂计划主键 + * @return 饲喂计划 + */ + @Override + public SgFeedPlan selectSgFeedPlanByCreateDate(Date createDate) + { + return sgFeedPlanMapper.selectSgFeedPlanByCreateDate(createDate); + } + + /** + * 查询饲喂计划列表 + * + * @param sgFeedPlan 饲喂计划 + * @return 饲喂计划 + */ + @Override + public List selectSgFeedPlanList(SgFeedPlan sgFeedPlan) + { + return sgFeedPlanMapper.selectSgFeedPlanList(sgFeedPlan); + } + + /** + * 新增饲喂计划 + * + * @param sgFeedPlan 饲喂计划 + * @return 结果 + */ + @Override + public int insertSgFeedPlan(SgFeedPlan sgFeedPlan) + { + return sgFeedPlanMapper.insertSgFeedPlan(sgFeedPlan); + } + + /** + * 修改饲喂计划 + * + * @param sgFeedPlan 饲喂计划 + * @return 结果 + */ + @Override + public int updateSgFeedPlan(SgFeedPlan sgFeedPlan) + { + return sgFeedPlanMapper.updateSgFeedPlan(sgFeedPlan); + } + + /** + * 批量删除饲喂计划 + * + * @param createDates 需要删除的饲喂计划主键 + * @return 结果 + */ + @Override + public int deleteSgFeedPlanByCreateDates(Date[] createDates) + { + return sgFeedPlanMapper.deleteSgFeedPlanByCreateDates(createDates); + } + + /** + * 删除饲喂计划信息 + * + * @param createDate 饲喂计划主键 + * @return 结果 + */ + @Override + public int deleteSgFeedPlanByCreateDate(Date createDate) + { + return sgFeedPlanMapper.deleteSgFeedPlanByCreateDate(createDate); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedRatioServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedRatioServiceImpl.java new file mode 100644 index 0000000..ee15ab0 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFeedRatioServiceImpl.java @@ -0,0 +1,93 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgFeedRatioMapper; +import com.zhyc.module.feed.domain.SgFeedRatio; +import com.zhyc.module.feed.service.ISgFeedRatioService; + +/** + * 饲喂比例Service业务层处理 + * + * @author ruoyi + * @date 2025-08-01 + */ +@Service +public class SgFeedRatioServiceImpl implements ISgFeedRatioService +{ + @Autowired + private SgFeedRatioMapper sgFeedRatioMapper; + + /** + * 查询饲喂比例 + * + * @param id 饲喂比例主键 + * @return 饲喂比例 + */ + @Override + public SgFeedRatio selectSgFeedRatioById(Long id) + { + return sgFeedRatioMapper.selectSgFeedRatioById(id); + } + + /** + * 查询饲喂比例列表 + * + * @param sgFeedRatio 饲喂比例 + * @return 饲喂比例 + */ + @Override + public List selectSgFeedRatioList(SgFeedRatio sgFeedRatio) + { + return sgFeedRatioMapper.selectSgFeedRatioList(sgFeedRatio); + } + + /** + * 新增饲喂比例 + * + * @param sgFeedRatio 饲喂比例 + * @return 结果 + */ + @Override + public int insertSgFeedRatio(SgFeedRatio sgFeedRatio) + { + return sgFeedRatioMapper.insertSgFeedRatio(sgFeedRatio); + } + + /** + * 修改饲喂比例 + * + * @param sgFeedRatio 饲喂比例 + * @return 结果 + */ + @Override + public int updateSgFeedRatio(SgFeedRatio sgFeedRatio) + { + return sgFeedRatioMapper.updateSgFeedRatio(sgFeedRatio); + } + + /** + * 批量删除饲喂比例 + * + * @param ids 需要删除的饲喂比例主键 + * @return 结果 + */ + @Override + public int deleteSgFeedRatioByIds(Long[] ids) + { + return sgFeedRatioMapper.deleteSgFeedRatioByIds(ids); + } + + /** + * 删除饲喂比例信息 + * + * @param id 饲喂比例主键 + * @return 结果 + */ + @Override + public int deleteSgFeedRatioById(Long id) + { + return sgFeedRatioMapper.deleteSgFeedRatioById(id); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFodderServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFodderServiceImpl.java new file mode 100644 index 0000000..523fc3d --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFodderServiceImpl.java @@ -0,0 +1,93 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgFodderMapper; +import com.zhyc.module.feed.domain.SgFodder; +import com.zhyc.module.feed.service.ISgFodderService; + +/** + * 原料Service业务层处理 + * + * @author ruoyi + * @date 2025-08-01 + */ +@Service +public class SgFodderServiceImpl implements ISgFodderService +{ + @Autowired + private SgFodderMapper sgFodderMapper; + + /** + * 查询原料 + * + * @param id 原料主键 + * @return 原料 + */ + @Override + public SgFodder selectSgFodderById(Long id) + { + return sgFodderMapper.selectSgFodderById(id); + } + + /** + * 查询原料列表 + * + * @param sgFodder 原料 + * @return 原料 + */ + @Override + public List selectSgFodderList(SgFodder sgFodder) + { + return sgFodderMapper.selectSgFodderList(sgFodder); + } + + /** + * 新增原料 + * + * @param sgFodder 原料 + * @return 结果 + */ + @Override + public int insertSgFodder(SgFodder sgFodder) + { + return sgFodderMapper.insertSgFodder(sgFodder); + } + + /** + * 修改原料 + * + * @param sgFodder 原料 + * @return 结果 + */ + @Override + public int updateSgFodder(SgFodder sgFodder) + { + return sgFodderMapper.updateSgFodder(sgFodder); + } + + /** + * 批量删除原料 + * + * @param ids 需要删除的原料主键 + * @return 结果 + */ + @Override + public int deleteSgFodderByIds(Long[] ids) + { + return sgFodderMapper.deleteSgFodderByIds(ids); + } + + /** + * 删除原料信息 + * + * @param id 原料主键 + * @return 结果 + */ + @Override + public int deleteSgFodderById(Long id) + { + return sgFodderMapper.deleteSgFodderById(id); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFormulaListServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFormulaListServiceImpl.java new file mode 100644 index 0000000..f26eb3a --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFormulaListServiceImpl.java @@ -0,0 +1,97 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.List; +import java.util.Objects; + +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgFormulaListMapper; +import com.zhyc.module.feed.domain.SgFormulaList; +import com.zhyc.module.feed.service.ISgFormulaListService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 配方列表Service业务层处理 + * + * @author HashMap + * @date 2025-08-09 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class SgFormulaListServiceImpl implements ISgFormulaListService { + private final SgFormulaListMapper sgFormulaListMapper; + + public SgFormulaListServiceImpl(SgFormulaListMapper sgFormulaListMapper) { + this.sgFormulaListMapper = sgFormulaListMapper; + } + + /** + * 查询配方列表 + * + * @param code 配方列表主键 + * @return 配方列表 + */ + @Override + public SgFormulaList selectSgFormulaListByCode(Long code) { + return sgFormulaListMapper.selectSgFormulaListByCode(code); + } + + /** + * 查询配方列表列表 + * + * @param sgFormulaList 配方列表 + * @return 配方列表 + */ + @Override + public List selectSgFormulaListList(SgFormulaList sgFormulaList) { + return sgFormulaListMapper.selectSgFormulaListList(sgFormulaList); + } + + /** + * 新增配方列表 + * + * @param sgFormulaList 配方列表 + * @return 结果 + */ + @Override + public int insertSgFormulaList(SgFormulaList sgFormulaList) { + return sgFormulaListMapper.insertSgFormulaList(sgFormulaList); + } + + /** + * 修改配方列表 + * + * @param sgFormulaList 配方列表 + * @return 结果 + */ + @Override + public int updateSgFormulaList(SgFormulaList sgFormulaList) { + return sgFormulaListMapper.updateSgFormulaList(sgFormulaList); + } + + /** + * 批量删除配方列表 + * + * @param codes 需要删除的配方列表主键 + * @return 结果 + */ + @Override + public int deleteSgFormulaListByCodes(Long[] codes) { + return sgFormulaListMapper.deleteSgFormulaListByCodes(codes); + } + + /** + * 删除配方列表信息 + * + * @param code 配方列表主键 + * @return 结果 + */ + @Override + public int deleteSgFormulaListByCode(Long code) { + return sgFormulaListMapper.deleteSgFormulaListByCode(code); + } + + @Override + public int deleteSgFormulaListByFormulaIdAndBatchId(SgFormulaList sgFormulaList) { + return sgFormulaListMapper.deleteSgFormulaListByFormulaIdAndBatchId(sgFormulaList); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFormulaManagementServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFormulaManagementServiceImpl.java new file mode 100644 index 0000000..b07028f --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgFormulaManagementServiceImpl.java @@ -0,0 +1,135 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.Iterator; +import java.util.List; +import java.util.Objects; + +import com.zhyc.module.feed.domain.SgFormulaList; +import com.zhyc.module.feed.mapper.SgFormulaListMapper; +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgFormulaManagementMapper; +import com.zhyc.module.feed.domain.SgFormulaManagement; +import com.zhyc.module.feed.service.ISgFormulaManagementService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 配方管理Service业务层处理 + * + * @author HashMap + * @date 2025-08-09 + */ +@Service +public class SgFormulaManagementServiceImpl implements ISgFormulaManagementService { + private final SgFormulaManagementMapper sgFormulaManagementMapper; + private final SgFormulaListMapper sgFormulaListMapper; + + public SgFormulaManagementServiceImpl(SgFormulaManagementMapper sgFormulaManagementMapper, SgFormulaListMapper sgFormulaListMapper) { + this.sgFormulaManagementMapper = sgFormulaManagementMapper; + this.sgFormulaListMapper = sgFormulaListMapper; + } + + /** + * 查询配方管理 + * + * @param formulaId 配方管理主键 + * @return 配方管理 + */ + @Override + public SgFormulaManagement selectSgFormulaManagementByFormulaId(String formulaId) { + return sgFormulaManagementMapper.selectSgFormulaManagementByFormulaId(formulaId); + } + + /** + * 查询配方管理列表 + * + * @param sgFormulaManagement 配方管理 + * @return 配方管理 + */ + @Override + public List selectSgFormulaManagementList(SgFormulaManagement sgFormulaManagement) { + List sgFormulaManagements = + sgFormulaManagementMapper.selectSgFormulaManagementList(sgFormulaManagement); + + Iterator iterator = sgFormulaManagements.iterator(); + while (iterator.hasNext()) { + SgFormulaManagement formulaManagement = iterator.next(); + // 子查询中去除重复的父项 + if (formulaManagement != null + && sgFormulaManagement.getQueryType() != null + && sgFormulaManagement.getQueryType().equals("Sub") + && Objects.equals(formulaManagement.getBatchId(), "0")) { + iterator.remove(); // 安全删除 + continue; // 删除后跳过本次循环 + } + // 绑定配方列表 + if (formulaManagement != null + && formulaManagement.getFormulaId() != null + && formulaManagement.getBatchId() != null) { + SgFormulaList sgFormulaList = new SgFormulaList(); + sgFormulaList.setFormulaId(formulaManagement.getFormulaId()); + sgFormulaList.setBatchId(formulaManagement.getBatchId()); + List formulaLists = + sgFormulaListMapper.selectSgFormulaListList(sgFormulaList); + formulaManagement.setSgFormulaList(formulaLists); + } + } + + return sgFormulaManagements; + } + + + /** + * 新增配方管理 + * + * @param sgFormulaManagement 配方管理 + * @return 结果 + */ + @Override + public int insertSgFormulaManagement(SgFormulaManagement sgFormulaManagement) { + return sgFormulaManagementMapper.insertSgFormulaManagement(sgFormulaManagement); + } + + /** + * 修改配方管理 + * + * @param sgFormulaManagement 配方管理 + * @return 结果 + */ + @Override + public int updateSgFormulaManagement(SgFormulaManagement sgFormulaManagement) { + return sgFormulaManagementMapper.updateSgFormulaManagement(sgFormulaManagement); + } + + /** + * 批量删除配方管理 + * + * @param formulaIds 需要删除的配方管理主键 + * @return 结果 + */ + @Override + public int deleteSgFormulaManagementByFormulaIds(String[] formulaIds) { + return sgFormulaManagementMapper.deleteSgFormulaManagementByFormulaIds(formulaIds); + } + + /** + * 删除配方管理信息 + * + * @param formulaId 配方管理主键 + * @return 结果 + */ + @Override + public int deleteSgFormulaManagementByFormulaId(String formulaId) { + return sgFormulaManagementMapper.deleteSgFormulaManagementByFormulaId(formulaId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteSgFormulaManagement(SgFormulaManagement sgFormulaManagement) { + // 删除关联配方表 + SgFormulaList sgFormulaList = new SgFormulaList(); + sgFormulaList.setFormulaId(sgFormulaManagement.getFormulaId()); + sgFormulaList.setBatchId(sgFormulaManagement.getBatchId()); + sgFormulaListMapper.deleteSgFormulaListByFormulaIdAndBatchId(sgFormulaList); + return sgFormulaManagementMapper.deleteSgFormulaManagement(sgFormulaManagement); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgMaterialServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgMaterialServiceImpl.java new file mode 100644 index 0000000..b858ae3 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/feed/service/impl/SgMaterialServiceImpl.java @@ -0,0 +1,96 @@ +package com.zhyc.module.feed.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Service; +import com.zhyc.module.feed.mapper.SgMaterialMapper; +import com.zhyc.module.feed.domain.SgMaterial; +import com.zhyc.module.feed.service.ISgMaterialService; + +/** + * 原料Service业务层处理 + * + * @author HashMap + * @date 2025-08-11 + */ +@Service +public class SgMaterialServiceImpl implements ISgMaterialService +{ + private final SgMaterialMapper sgMaterialMapper; + + public SgMaterialServiceImpl(SgMaterialMapper sgMaterialMapper) { + this.sgMaterialMapper = sgMaterialMapper; + } + + /** + * 查询原料 + * + * @param materialId 原料主键 + * @return 原料 + */ + @Override + public SgMaterial selectSgMaterialByMaterialId(String materialId) + { + return sgMaterialMapper.selectSgMaterialByMaterialId(materialId); + } + + /** + * 查询原料列表 + * + * @param sgMaterial 原料 + * @return 原料 + */ + @Override + public List selectSgMaterialList(SgMaterial sgMaterial) + { + return sgMaterialMapper.selectSgMaterialList(sgMaterial); + } + + /** + * 新增原料 + * + * @param sgMaterial 原料 + * @return 结果 + */ + @Override + public int insertSgMaterial(SgMaterial sgMaterial) + { + return sgMaterialMapper.insertSgMaterial(sgMaterial); + } + + /** + * 修改原料 + * + * @param sgMaterial 原料 + * @return 结果 + */ + @Override + public int updateSgMaterial(SgMaterial sgMaterial) + { + return sgMaterialMapper.updateSgMaterial(sgMaterial); + } + + /** + * 批量删除原料 + * + * @param materialIds 需要删除的原料主键 + * @return 结果 + */ + @Override + public int deleteSgMaterialByMaterialIds(String[] materialIds) + { + return sgMaterialMapper.deleteSgMaterialByMaterialIds(materialIds); + } + + /** + * 删除原料信息 + * + * @param materialId 原料主键 + * @return 结果 + */ + @Override + public int deleteSgMaterialByMaterialId(String materialId) + { + return sgMaterialMapper.deleteSgMaterialByMaterialId(materialId); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScSheepDeathController.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScSheepDeathController.java new file mode 100644 index 0000000..cbd1964 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/controller/ScSheepDeathController.java @@ -0,0 +1,120 @@ +package com.zhyc.module.produce.breed.controller; + +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.produce.breed.domain.ScSheepDeath; +import com.zhyc.module.produce.breed.service.IScSheepDeathService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; + +/** + * 羊只死淘记录Controller + * + * @author ruoyi + * @date 2025-08-06 + */ +@RestController +@RequestMapping("/sheep_death/death") +public class ScSheepDeathController extends BaseController +{ + @Autowired + private IScSheepDeathService scSheepDeathService; + + /** + * 查询羊只死淘记录列表 + */ + @PreAuthorize("@ss.hasPermi('sheep_death:death:list')") + @GetMapping("/list") + public TableDataInfo list(ScSheepDeath scSheepDeath) + { + startPage(); + List list = scSheepDeathService.selectScSheepDeathList(scSheepDeath); + return getDataTable(list); + } + + /** + * 根据管理耳号查询羊只信息 + */ + @PreAuthorize("@ss.hasPermi('sheep_death:death:query')") + @GetMapping("/sheepInfo/{manageTags}") + public AjaxResult getSheepInfo(@PathVariable("manageTags") String manageTags) + { + Map sheepInfo = scSheepDeathService.selectSheepFileByManageTags(manageTags); + if (sheepInfo != null) { + return success(sheepInfo); + } else { + return error("未找到该耳号对应的羊只信息"); + } + } + + /** + * 导出羊只死淘记录列表 + */ + @PreAuthorize("@ss.hasPermi('sheep_death:death:export')") + @Log(title = "羊只死淘记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ScSheepDeath scSheepDeath) + { + List list = scSheepDeathService.selectScSheepDeathList(scSheepDeath); + ExcelUtil util = new ExcelUtil(ScSheepDeath.class); + util.exportExcel(response, list, "羊只死淘记录数据"); + } + + /** + * 获取羊只死淘记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('sheep_death:death:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(scSheepDeathService.selectScSheepDeathById(id)); + } + + /** + * 新增羊只死淘记录 + */ + @PreAuthorize("@ss.hasPermi('sheep_death:death:add')") + @Log(title = "羊只死淘记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ScSheepDeath scSheepDeath) + { + return toAjax(scSheepDeathService.insertScSheepDeath(scSheepDeath)); + } + + /** + * 修改羊只死淘记录 + */ + @PreAuthorize("@ss.hasPermi('sheep_death:death:edit')") + @Log(title = "羊只死淘记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ScSheepDeath scSheepDeath) + { + return toAjax(scSheepDeathService.updateScSheepDeath(scSheepDeath)); + } + + /** + * 删除羊只死淘记录 + */ + @PreAuthorize("@ss.hasPermi('sheep_death:death:remove')") + @Log(title = "羊只死淘记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(scSheepDeathService.deleteScSheepDeathByIds(ids)); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScSheepDeath.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScSheepDeath.java new file mode 100644 index 0000000..52f04dd --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/domain/ScSheepDeath.java @@ -0,0 +1,356 @@ +package com.zhyc.module.produce.breed.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 羊只死淘记录对象 sc_sheep_death + * + * @author ruoyi + * @date 2025-08-06 + */ +public class ScSheepDeath extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 羊只ID */ + @Excel(name = "羊只ID") + private Long sheepId; + + /** 管理耳号 */ + @Excel(name = "管理耳号") + private String manageTags; + + /** 事件类型 */ + @Excel(name = "事件类型") + private String eventType; + + /** 死亡日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "死亡日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date deathDate; + + /** 疾病类型ID */ + @Excel(name = "疾病类型ID") + private Long diseaseTypeId; + + /** 疾病子类型ID */ + @Excel(name = "疾病子类型ID") + private Long diseaseSubtypeId; + + /** 死淘去向 */ + @Excel(name = "死淘去向") + private String disposalDirection; + + /** 技术员 */ + @Excel(name = "技术员") + private String technician; + + /** 处理人 */ + @Excel(name = "处理人") + private String handler; + + /** 班组 */ + @Excel(name = "班组") + private String workGroup; + + /** 备注 */ + @Excel(name = "备注") + private String comment; + + /** 是否删除(0:未删除 1:已删除) */ + @Excel(name = "是否删除(0:未删除 1:已删除)") + private Long isDelete; + + // 以下字段仅用于前端显示,不存储到数据库 + /** 品种 */ + private String variety; + + /** 死亡时羊只类别 */ + private String sheepType; + + /** 性别 */ + private Integer gender; + + /** 日龄 */ + private Long dayAge; + + /** 胎次 */ + private Integer parity; + + /** 羊舍 */ + private String sheepfoldName; + + /** 繁育状态 */ + private String breedStatus; + + /** 死亡时产后天数 */ + private Integer postLambingDay; + + /** 死亡时泌乳天数 */ + private Integer lactationDay; + + /** 死亡时怀孕天数 */ + private Integer gestationDay; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setSheepId(Long sheepId) + { + this.sheepId = sheepId; + } + + public Long getSheepId() + { + return sheepId; + } + + public void setManageTags(String manageTags) + { + this.manageTags = manageTags; + } + + public String getManageTags() + { + return manageTags; + } + + public void setEventType(String eventType) + { + this.eventType = eventType; + } + + public String getEventType() + { + return eventType; + } + + public void setDeathDate(Date deathDate) + { + this.deathDate = deathDate; + } + + public Date getDeathDate() + { + return deathDate; + } + + public void setDiseaseTypeId(Long diseaseTypeId) + { + this.diseaseTypeId = diseaseTypeId; + } + + public Long getDiseaseTypeId() + { + return diseaseTypeId; + } + + public void setDiseaseSubtypeId(Long diseaseSubtypeId) + { + this.diseaseSubtypeId = diseaseSubtypeId; + } + + public Long getDiseaseSubtypeId() + { + return diseaseSubtypeId; + } + + public void setDisposalDirection(String disposalDirection) + { + this.disposalDirection = disposalDirection; + } + + public String getDisposalDirection() + { + return disposalDirection; + } + + public void setTechnician(String technician) + { + this.technician = technician; + } + + public String getTechnician() + { + return technician; + } + + public void setHandler(String handler) + { + this.handler = handler; + } + + public String getHandler() + { + return handler; + } + + public void setWorkGroup(String workGroup) + { + this.workGroup = workGroup; + } + + public String getWorkGroup() + { + return workGroup; + } + + public void setComment(String comment) + { + this.comment = comment; + } + + public String getComment() + { + return comment; + } + + public void setIsDelete(Long isDelete) + { + this.isDelete = isDelete; + } + + public Long getIsDelete() + { + return isDelete; + } + + // 以下为仅用于显示的字段的getter/setter + public void setVariety(String variety) + { + this.variety = variety; + } + + public String getVariety() + { + return variety; + } + + public void setSheepType(String sheepType) + { + this.sheepType = sheepType; + } + + public String getSheepType() + { + return sheepType; + } + + public void setGender(Integer gender) + { + this.gender = gender; + } + + public Integer getGender() + { + return gender; + } + + public void setDayAge(Long dayAge) + { + this.dayAge = dayAge; + } + + public Long getDayAge() + { + return dayAge; + } + + public void setParity(Integer parity) + { + this.parity = parity; + } + + public Integer getParity() + { + return parity; + } + + public void setSheepfoldName(String sheepfoldName) + { + this.sheepfoldName = sheepfoldName; + } + + public String getSheepfoldName() + { + return sheepfoldName; + } + + public void setBreedStatus(String breedStatus) + { + this.breedStatus = breedStatus; + } + + public String getBreedStatus() + { + return breedStatus; + } + + public void setPostLambingDay(Integer postLambingDay) + { + this.postLambingDay = postLambingDay; + } + + public Integer getPostLambingDay() + { + return postLambingDay; + } + + public void setLactationDay(Integer lactationDay) + { + this.lactationDay = lactationDay; + } + + public Integer getLactationDay() + { + return lactationDay; + } + + public void setGestationDay(Integer gestationDay) + { + this.gestationDay = gestationDay; + } + + public Integer getGestationDay() + { + return gestationDay; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("sheepId", getSheepId()) + .append("manageTags", getManageTags()) + .append("eventType", getEventType()) + .append("deathDate", getDeathDate()) + .append("diseaseTypeId", getDiseaseTypeId()) + .append("diseaseSubtypeId", getDiseaseSubtypeId()) + .append("disposalDirection", getDisposalDirection()) + .append("technician", getTechnician()) + .append("handler", getHandler()) + .append("workGroup", getWorkGroup()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("comment", getComment()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("isDelete", getIsDelete()) + .toString(); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScSheepDeathMapper.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScSheepDeathMapper.java new file mode 100644 index 0000000..980d20d --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/mapper/ScSheepDeathMapper.java @@ -0,0 +1,70 @@ +package com.zhyc.module.produce.breed.mapper; + +import java.util.List; +import java.util.Map; +import com.zhyc.module.produce.breed.domain.ScSheepDeath; + +/** + * 羊只死淘记录Mapper接口 + * + * @author ruoyi + * @date 2025-08-06 + */ +public interface ScSheepDeathMapper +{ + /** + * 查询羊只死淘记录 + * + * @param id 羊只死淘记录主键 + * @return 羊只死淘记录 + */ + public ScSheepDeath selectScSheepDeathById(Long id); + + /** + * 查询羊只死淘记录列表 + * + * @param scSheepDeath 羊只死淘记录 + * @return 羊只死淘记录集合 + */ + public List selectScSheepDeathList(ScSheepDeath scSheepDeath); + + /** + * 根据管理耳号查询sheep_file视图信息 + * + * @param manageTags 管理耳号 + * @return 羊只信息 + */ + public Map selectSheepFileByManageTags(String manageTags); + + /** + * 新增羊只死淘记录 + * + * @param scSheepDeath 羊只死淘记录 + * @return 结果 + */ + public int insertScSheepDeath(ScSheepDeath scSheepDeath); + + /** + * 修改羊只死淘记录 + * + * @param scSheepDeath 羊只死淘记录 + * @return 结果 + */ + public int updateScSheepDeath(ScSheepDeath scSheepDeath); + + /** + * 删除羊只死淘记录 + * + * @param id 羊只死淘记录主键 + * @return 结果 + */ + public int deleteScSheepDeathById(Long id); + + /** + * 批量删除羊只死淘记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteScSheepDeathByIds(Long[] ids); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScSheepDeathService.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScSheepDeathService.java new file mode 100644 index 0000000..e1100d5 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/IScSheepDeathService.java @@ -0,0 +1,70 @@ +package com.zhyc.module.produce.breed.service; + +import java.util.List; +import java.util.Map; +import com.zhyc.module.produce.breed.domain.ScSheepDeath; + +/** + * 羊只死淘记录Service接口 + * + * @author ruoyi + * @date 2025-08-06 + */ +public interface IScSheepDeathService +{ + /** + * 查询羊只死淘记录 + * + * @param id 羊只死淘记录主键 + * @return 羊只死淘记录 + */ + public ScSheepDeath selectScSheepDeathById(Long id); + + /** + * 查询羊只死淘记录列表 + * + * @param scSheepDeath 羊只死淘记录 + * @return 羊只死淘记录集合 + */ + public List selectScSheepDeathList(ScSheepDeath scSheepDeath); + + /** + * 根据管理耳号查询sheep_file视图信息 + * + * @param manageTags 管理耳号 + * @return 羊只信息 + */ + public Map selectSheepFileByManageTags(String manageTags); + + /** + * 新增羊只死淘记录 + * + * @param scSheepDeath 羊只死淘记录 + * @return 结果 + */ + public int insertScSheepDeath(ScSheepDeath scSheepDeath); + + /** + * 修改羊只死淘记录 + * + * @param scSheepDeath 羊只死淘记录 + * @return 结果 + */ + public int updateScSheepDeath(ScSheepDeath scSheepDeath); + + /** + * 批量删除羊只死淘记录 + * + * @param ids 需要删除的羊只死淘记录主键集合 + * @return 结果 + */ + public int deleteScSheepDeathByIds(Long[] ids); + + /** + * 删除羊只死淘记录信息 + * + * @param id 羊只死淘记录主键 + * @return 结果 + */ + public int deleteScSheepDeathById(Long id); +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScSheepDeathServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScSheepDeathServiceImpl.java new file mode 100644 index 0000000..12e7afd --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/breed/service/impl/ScSheepDeathServiceImpl.java @@ -0,0 +1,166 @@ +package com.zhyc.module.produce.breed.service.impl; + +import java.util.List; +import java.util.Map; +import com.zhyc.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.zhyc.module.produce.breed.mapper.ScSheepDeathMapper; +import com.zhyc.module.produce.breed.domain.ScSheepDeath; +import com.zhyc.module.produce.breed.service.IScSheepDeathService; + +/** + * 羊只死淘记录Service业务层处理 + * + * @author ruoyi + * @date 2025-08-06 + */ +@Service +public class ScSheepDeathServiceImpl implements IScSheepDeathService +{ + @Autowired + private ScSheepDeathMapper scSheepDeathMapper; + + /** + * 查询羊只死淘记录 + * + * @param id 羊只死淘记录主键 + * @return 羊只死淘记录 + */ + @Override + public ScSheepDeath selectScSheepDeathById(Long id) + { + ScSheepDeath scSheepDeath = scSheepDeathMapper.selectScSheepDeathById(id); + // 查询时也需要填充显示字段 + if (scSheepDeath != null && scSheepDeath.getManageTags() != null) { + Map sheepInfo = selectSheepFileByManageTags(scSheepDeath.getManageTags()); + if (sheepInfo != null) { + scSheepDeath.setVariety(sheepInfo.get("variety") != null ? sheepInfo.get("variety").toString() : null); + scSheepDeath.setSheepType(sheepInfo.get("sheepType") != null ? sheepInfo.get("sheepType").toString() : null); + scSheepDeath.setGender(sheepInfo.get("gender") != null ? Integer.valueOf(sheepInfo.get("gender").toString()) : null); + scSheepDeath.setDayAge(sheepInfo.get("dayAge") != null ? Long.valueOf(sheepInfo.get("dayAge").toString()) : null); + scSheepDeath.setParity(sheepInfo.get("parity") != null ? Integer.valueOf(sheepInfo.get("parity").toString()) : null); + scSheepDeath.setSheepfoldName(sheepInfo.get("sheepfoldName") != null ? sheepInfo.get("sheepfoldName").toString() : null); + scSheepDeath.setBreedStatus(sheepInfo.get("breedStatus") != null ? sheepInfo.get("breedStatus").toString() : null); + scSheepDeath.setPostLambingDay(sheepInfo.get("postLambingDay") != null ? Integer.valueOf(sheepInfo.get("postLambingDay").toString()) : null); + scSheepDeath.setLactationDay(sheepInfo.get("lactationDay") != null ? Integer.valueOf(sheepInfo.get("lactationDay").toString()) : null); + scSheepDeath.setGestationDay(sheepInfo.get("gestationDay") != null ? Integer.valueOf(sheepInfo.get("gestationDay").toString()) : null); + } + } + return scSheepDeath; + } + + /** + * 查询羊只死淘记录列表 + * + * @param scSheepDeath 羊只死淘记录 + * @return 羊只死淘记录 + */ + @Override + public List selectScSheepDeathList(ScSheepDeath scSheepDeath) + { + List list = scSheepDeathMapper.selectScSheepDeathList(scSheepDeath); + // 为列表中的每条记录填充显示字段 + for (ScSheepDeath death : list) { + if (death.getManageTags() != null) { + Map sheepInfo = selectSheepFileByManageTags(death.getManageTags()); + if (sheepInfo != null) { + death.setVariety(sheepInfo.get("variety") != null ? sheepInfo.get("variety").toString() : null); + death.setSheepType(sheepInfo.get("sheepType") != null ? sheepInfo.get("sheepType").toString() : null); + death.setGender(sheepInfo.get("gender") != null ? Integer.valueOf(sheepInfo.get("gender").toString()) : null); + death.setDayAge(sheepInfo.get("dayAge") != null ? Long.valueOf(sheepInfo.get("dayAge").toString()) : null); + death.setParity(sheepInfo.get("parity") != null ? Integer.valueOf(sheepInfo.get("parity").toString()) : null); + death.setSheepfoldName(sheepInfo.get("sheepfoldName") != null ? sheepInfo.get("sheepfoldName").toString() : null); + death.setBreedStatus(sheepInfo.get("breedStatus") != null ? sheepInfo.get("breedStatus").toString() : null); + death.setPostLambingDay(sheepInfo.get("postLambingDay") != null ? Integer.valueOf(sheepInfo.get("postLambingDay").toString()) : null); + death.setLactationDay(sheepInfo.get("lactationDay") != null ? Integer.valueOf(sheepInfo.get("lactationDay").toString()) : null); + death.setGestationDay(sheepInfo.get("gestationDay") != null ? Integer.valueOf(sheepInfo.get("gestationDay").toString()) : null); + } + } + } + return list; + } + + /** + * 根据管理耳号查询sheep_file视图信息 + * + * @param manageTags 管理耳号 + * @return 羊只信息 + */ + @Override + public Map selectSheepFileByManageTags(String manageTags) + { + return scSheepDeathMapper.selectSheepFileByManageTags(manageTags); + } + + /** + * 新增羊只死淘记录 + * + * @param scSheepDeath 羊只死淘记录 + * @return 结果 + */ + @Override + public int insertScSheepDeath(ScSheepDeath scSheepDeath) + { + // 设置事件类型默认为"死亡" + if (scSheepDeath.getEventType() == null || scSheepDeath.getEventType().isEmpty()) { + scSheepDeath.setEventType("死亡"); + } + + // 如果有管理耳号,查询并设置羊只ID + if (scSheepDeath.getManageTags() != null && !scSheepDeath.getManageTags().isEmpty()) { + Map sheepInfo = selectSheepFileByManageTags(scSheepDeath.getManageTags()); + if (sheepInfo != null) { + scSheepDeath.setSheepId(sheepInfo.get("sheepId") != null ? Long.valueOf(sheepInfo.get("sheepId").toString()) : null); + } + } + + scSheepDeath.setCreateTime(DateUtils.getNowDate()); + return scSheepDeathMapper.insertScSheepDeath(scSheepDeath); + } + + /** + * 修改羊只死淘记录 + * + * @param scSheepDeath 羊只死淘记录 + * @return 结果 + */ + @Override + public int updateScSheepDeath(ScSheepDeath scSheepDeath) + { + // 如果管理耳号发生变化,重新查询并设置羊只ID + if (scSheepDeath.getManageTags() != null && !scSheepDeath.getManageTags().isEmpty()) { + Map sheepInfo = selectSheepFileByManageTags(scSheepDeath.getManageTags()); + if (sheepInfo != null) { + scSheepDeath.setSheepId(sheepInfo.get("sheepId") != null ? Long.valueOf(sheepInfo.get("sheepId").toString()) : null); + } + } + + scSheepDeath.setUpdateTime(DateUtils.getNowDate()); + return scSheepDeathMapper.updateScSheepDeath(scSheepDeath); + } + + /** + * 批量删除羊只死淘记录 + * + * @param ids 需要删除的羊只死淘记录主键 + * @return 结果 + */ + @Override + public int deleteScSheepDeathByIds(Long[] ids) + { + return scSheepDeathMapper.deleteScSheepDeathByIds(ids); + } + + /** + * 删除羊只死淘记录信息 + * + * @param id 羊只死淘记录主键 + * @return 结果 + */ + @Override + public int deleteScSheepDeathById(Long id) + { + return scSheepDeathMapper.deleteScSheepDeathById(id); + } +} \ No newline at end of file diff --git a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/service/impl/ScAddSheepServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/service/impl/ScAddSheepServiceImpl.java index 278490e..b6ed6b4 100644 --- a/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/service/impl/ScAddSheepServiceImpl.java +++ b/zhyc-module/src/main/java/com/zhyc/module/produce/manage_sheep/service/impl/ScAddSheepServiceImpl.java @@ -36,9 +36,9 @@ public class ScAddSheepServiceImpl implements IScAddSheepService { @Override @Transactional(rollbackFor = Exception.class) public boolean insertScAddSheep(ScAddSheep scAddSheep) { - ScAddSheep exist = scAddSheepMapper.selectByEarNumber(scAddSheep.getEarNumber()); - if (exist != null) { - throw new ServiceException("添加失败,耳号重复"); + BasSheep existSheep =basSheepService.selectBasSheepByManageTags(scAddSheep.getEarNumber().trim()); + if (existSheep != null) { + throw new ServiceException("添加失败,耳号已存在"); } boolean ok = scAddSheepMapper.insert(scAddSheep) > 0; @@ -101,6 +101,7 @@ public class ScAddSheepServiceImpl implements IScAddSheepService { for (int i = 0; i < list.size(); i++) { ScAddSheep sheep = list.get(i); try { + // 处理品种名称转换为品种ID if (StringUtils.isNotBlank(sheep.getVarietyName())) { Long varietyId = basSheepVarietyMapper.selectIdByName(sheep.getVarietyName()); if (varietyId == null) { @@ -121,6 +122,7 @@ public class ScAddSheepServiceImpl implements IScAddSheepService { continue; } + // 处理羊舍名称转换为羊舍ID if (StringUtils.isNotBlank(sheep.getSheepfoldNameExcel())) { DaSheepfold param = new DaSheepfold(); param.setSheepfoldName(sheep.getSheepfoldNameExcel()); @@ -137,6 +139,7 @@ public class ScAddSheepServiceImpl implements IScAddSheepService { sheep.setSheepfold(foldList.get(0).getId().intValue()); } + // 校验耳号是否为空 if (StringUtils.isBlank(sheep.getEarNumber())) { failure++; failureMsg.append("
第") @@ -145,17 +148,19 @@ public class ScAddSheepServiceImpl implements IScAddSheepService { continue; } - ScAddSheep exist = scAddSheepMapper.selectByEarNumber(sheep.getEarNumber()); - if (exist != null) { + // 核心校验:判断羊只基本信息表中是否存在未删除的同名耳号 + BasSheep existSheep = basSheepService.selectBasSheepByManageTags(sheep.getEarNumber().trim()); + if (existSheep != null) { failure++; failureMsg.append("
第") .append(i + 1) - .append("行:耳号已存在【") + .append("行:耳号已存在且未删除【") .append(sheep.getEarNumber()) .append("】"); continue; } + // 执行导入(新增或更新) if (updateSupport && sheep.getId() != null) { sheep.setUpdateBy(operName); updateScAddSheep(sheep); diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzMaterialsManagementController.java b/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzMaterialsManagementController.java new file mode 100644 index 0000000..e1b567e --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzMaterialsManagementController.java @@ -0,0 +1,116 @@ +package com.zhyc.module.stock.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.stock.domain.WzMaterialsManagement; +import com.zhyc.module.stock.service.IWzMaterialsManagementService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; + +/** + * 物资管理Controller + * + * @author HashMap + * @date 2025-08-05 + */ +@RestController +@RequestMapping("/stock/management") +public class WzMaterialsManagementController extends BaseController { + private final IWzMaterialsManagementService wzMaterialsManagementService; + + public WzMaterialsManagementController(IWzMaterialsManagementService wzMaterialsManagementService) { + this.wzMaterialsManagementService = wzMaterialsManagementService; + } + + /** + * 查询物资管理列表 + */ + @PreAuthorize("@ss.hasPermi('stock:management:list')") + @GetMapping("/list") + public TableDataInfo list(WzMaterialsManagement wzMaterialsManagement) { + startPage(); + List list = wzMaterialsManagementService.selectWzMaterialsManagementList(wzMaterialsManagement); + return getDataTable(list); + } + + /** + * 导出物资管理列表 + */ + @PreAuthorize("@ss.hasPermi('stock:management:export')") + @Log(title = "物资管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WzMaterialsManagement wzMaterialsManagement) { + List list = wzMaterialsManagementService.selectWzMaterialsManagementList(wzMaterialsManagement); + ExcelUtil util = new ExcelUtil<>(WzMaterialsManagement.class); + util.exportExcel(response, list, "物资管理数据"); + } + + /** + * 获取物资管理详细信息 + */ + @PreAuthorize("@ss.hasPermi('stock:management:query')") + @GetMapping(value = "/{materialManagementCode}") + public AjaxResult getInfo(@PathVariable("materialManagementCode") Long materialManagementCode) { + return success(wzMaterialsManagementService.selectWzMaterialsManagementByMaterialManagementCode(materialManagementCode)); + } + + /** + * 新增物资管理 + */ + @PreAuthorize("@ss.hasPermi('stock:management:add')") + @Log(title = "物资管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WzMaterialsManagement wzMaterialsManagement) { + return toAjax(wzMaterialsManagementService.insertWzMaterialsManagement(wzMaterialsManagement)); + } + + /** + * 修改物资管理 + */ + @PreAuthorize("@ss.hasPermi('stock:management:edit')") + @Log(title = "物资管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WzMaterialsManagement wzMaterialsManagement) { + return toAjax(wzMaterialsManagementService.updateWzMaterialsManagement(wzMaterialsManagement)); + } + + /** + * 删除物资管理 + */ + @PreAuthorize("@ss.hasPermi('stock:management:remove')") + @Log(title = "物资管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{materialManagementCodes}") + public AjaxResult remove(@PathVariable Long[] materialManagementCodes) { + return toAjax(wzMaterialsManagementService.deleteWzMaterialsManagementByMaterialManagementCodes(materialManagementCodes)); + } + + @Log(title = "物资管理", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('stock:management:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { + ExcelUtil util = new ExcelUtil<>(WzMaterialsManagement.class); + List stockInList = util.importExcel(file.getInputStream()); + for (WzMaterialsManagement wzMaterialsManagement : stockInList) { + System.out.println(wzMaterialsManagement); + } + String operName = getUsername(); + String message = wzMaterialsManagementService.importUser(stockInList, updateSupport, operName); + // String message = "OK We are testing"; + return success(message); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzStockInController.java b/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzStockInController.java new file mode 100644 index 0000000..6705202 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzStockInController.java @@ -0,0 +1,122 @@ +package com.zhyc.module.stock.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.stock.domain.WzStockIn; +import com.zhyc.module.stock.service.IWzStockInService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; + +/** + * 入库记录Controller + * + * @author HashMap + * @date 2025-08-05 + */ +@RestController +@RequestMapping("/stock/in") +public class WzStockInController extends BaseController +{ + private final IWzStockInService wzStockInService; + + public WzStockInController(IWzStockInService wzStockInService) { + this.wzStockInService = wzStockInService; + } + + /** + * 查询入库记录列表 + */ + @PreAuthorize("@ss.hasPermi('stock:in:list')") + @GetMapping("/list") + public TableDataInfo list(WzStockIn wzStockIn) + { + startPage(); + List list = wzStockInService.selectWzStockInList(wzStockIn); + return getDataTable(list); + } + + /** + * 导出入库记录列表 + */ + @PreAuthorize("@ss.hasPermi('stock:in:export')") + @Log(title = "入库记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WzStockIn wzStockIn) + { + List list = wzStockInService.selectWzStockInList(wzStockIn); + ExcelUtil util = new ExcelUtil<>(WzStockIn.class); + util.exportExcel(response, list, "入库记录数据"); + } + + /** + * 获取入库记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('stock:in:query')") + @GetMapping(value = "/{stockInCode}") + public AjaxResult getInfo(@PathVariable("stockInCode") Long stockInCode) + { + return success(wzStockInService.selectWzStockInByStockInCode(stockInCode)); + } + + /** + * 新增入库记录 + */ + @PreAuthorize("@ss.hasPermi('stock:in:add')") + @Log(title = "入库记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WzStockIn wzStockIn) + { + return toAjax(wzStockInService.insertWzStockIn(wzStockIn)); + } + + /** + * 修改入库记录 + */ + @PreAuthorize("@ss.hasPermi('stock:in:edit')") + @Log(title = "入库记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WzStockIn wzStockIn) + { + return toAjax(wzStockInService.updateWzStockIn(wzStockIn)); + } + + /** + * 删除入库记录 + */ + @PreAuthorize("@ss.hasPermi('stock:in:remove')") + @Log(title = "入库记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{stockInCodes}") + public AjaxResult remove(@PathVariable Long[] stockInCodes) + { + return toAjax(wzStockInService.deleteWzStockInByStockInCodes(stockInCodes)); + } + + @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('stock:in:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil<>(WzStockIn.class); + List stockInList = util.importExcel(file.getInputStream()); + stockInList.removeIf(wzStockIn -> wzStockIn.getDocDate() == null); + String operName = getUsername(); + String message = wzStockInService.importUser(stockInList, updateSupport, operName); +// String message = "OK We are testing"; + return success(message); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzStockOutController.java b/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzStockOutController.java new file mode 100644 index 0000000..cb80a44 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/controller/WzStockOutController.java @@ -0,0 +1,130 @@ +package com.zhyc.module.stock.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.zhyc.common.annotation.Log; +import com.zhyc.common.core.controller.BaseController; +import com.zhyc.common.core.domain.AjaxResult; +import com.zhyc.common.enums.BusinessType; +import com.zhyc.module.stock.domain.WzStockOut; +import com.zhyc.module.stock.service.IWzStockOutService; +import com.zhyc.common.utils.poi.ExcelUtil; +import com.zhyc.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; + +/** + * 出库记录Controller + * + * @author HashMap + * @date 2025-08-05 + */ +@RestController +@RequestMapping("/stock/out") +public class WzStockOutController extends BaseController +{ + private final IWzStockOutService wzStockOutService; + + public WzStockOutController(IWzStockOutService wzStockOutService) { + this.wzStockOutService = wzStockOutService; + } + + /** + * 查询出库记录列表 + */ + @PreAuthorize("@ss.hasPermi('stock:out:list')") + @GetMapping("/list") + public TableDataInfo list(WzStockOut wzStockOut) + { + startPage(); + List list = wzStockOutService.selectWzStockOutList(wzStockOut); + return getDataTable(list); + } + + /** + * 导出出库记录列表 + */ + @PreAuthorize("@ss.hasPermi('stock:out:export')") + @Log(title = "出库记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WzStockOut wzStockOut) + { + List list = wzStockOutService.selectWzStockOutList(wzStockOut); + ExcelUtil util = new ExcelUtil<>(WzStockOut.class); + util.exportExcel(response, list, "出库记录数据"); + } + + /** + * 获取出库记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('stock:out:query')") + @GetMapping(value = "/{stockOutCode}") + public AjaxResult getInfo(@PathVariable("stockOutCode") Long stockOutCode) + { + return success(wzStockOutService.selectWzStockOutByStockOutCode(stockOutCode)); + } + + /** + * 新增出库记录 + */ + @PreAuthorize("@ss.hasPermi('stock:out:add')") + @Log(title = "出库记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WzStockOut wzStockOut) + { + return toAjax(wzStockOutService.insertWzStockOut(wzStockOut)); + } + + /** + * 修改出库记录 + */ + @PreAuthorize("@ss.hasPermi('stock:out:edit')") + @Log(title = "出库记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WzStockOut wzStockOut) + { + return toAjax(wzStockOutService.updateWzStockOut(wzStockOut)); + } + + /** + * 删除出库记录 + */ + @PreAuthorize("@ss.hasPermi('stock:out:remove')") + @Log(title = "出库记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{stockOutCodes}") + public AjaxResult remove(@PathVariable Long[] stockOutCodes) + { + return toAjax(wzStockOutService.deleteWzStockOutByStockOutCodes(stockOutCodes)); + } + + /** + * 导入出库记录 + */ + @Log(title = "出库记录", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('stock:out:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil<>(WzStockOut.class); + List WzStockOutList = util.importExcel(file.getInputStream()); + WzStockOutList.removeIf(wzStockOut -> wzStockOut.getDocId() == null); + String operName = getUsername(); + String message; + try { + message = wzStockOutService.importUser(WzStockOutList, updateSupport, operName); + }catch (Exception e) { + message = e.getMessage(); + logger.error(e.getMessage()); + } + // String message = "OK We are testing"; + return success(message); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzMaterialsManagement.java b/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzMaterialsManagement.java new file mode 100644 index 0000000..88d3a53 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzMaterialsManagement.java @@ -0,0 +1,87 @@ +package com.zhyc.module.stock.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 物资管理对象 wz_materials_management + * + * @author HashMap + * @date 2025-08-05 + */ +@Setter +@Getter +public class WzMaterialsManagement extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 序号 */ + @Excel(name = "序号") + private Long materialManagementCode; + + /** 存货编码 */ + @Excel(name = "存货编码") + private String materialId; + + /** 存货 */ + @Excel(name = "存货") + private String materialName; + + /** 批号 */ + @Excel(name = "批号") + private String batchId; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String materialSpecification; + + /** 主计量 */ + @Excel(name = "主计量") + private String materialUnit; + + /** 现存量(主) */ + @Excel(name = "现存量(主)") + private BigDecimal currentStock; + + /** 库存预警 */ + @Excel(name = "库存预警") + private String stockAlarm; + + /** 生产日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date productionDate; + + /** 失效日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date expirationDate; + + /** 失效预警 */ + @Excel(name = "失效预警") + private String expirationAlarm; + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("materialManagementCode", getMaterialManagementCode()) + .append("materialId", getMaterialId()) + .append("materialName", getMaterialName()) + .append("batchId", getBatchId()) + .append("materialSpecification", getMaterialSpecification()) + .append("materialUnit", getMaterialUnit()) + .append("currentStock", getCurrentStock()) + .append("stockAlarm", getStockAlarm()) + .append("productionDate", getProductionDate()) + .append("expirationDate", getExpirationDate()) + .append("expirationAlarm", getExpirationAlarm()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzStockIn.java b/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzStockIn.java new file mode 100644 index 0000000..cda8b08 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzStockIn.java @@ -0,0 +1,142 @@ +package com.zhyc.module.stock.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 入库记录对象 wz_stock_in + * + * @author HashMap + * @date 2025-08-05 + */ +@Setter +@Getter +public class WzStockIn extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 序号 */ + private Long stockInCode; + + /** 单据日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date docDate; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date createDate; + + /** 单据编号 */ + @Excel(name = "单据编号") + private String docId; + + /** 业务类型 */ + @Excel(name = "业务类型") + private String businessType; + + /** 仓库编码 */ + @Excel(name = "仓库编码") + private String repositoryId; + + /** 仓库 */ + @Excel(name = "仓库") + private String repositoryName; + + /** 入库类别 */ + @Excel(name = "入库类别") + private String stockInType; + + /** 供应商编码 */ + @Excel(name = "供应商编码") + private String supplierId; + + /** 供应商 */ + @Excel(name = "供应商") + private String supplierName; + + /** 部门编码 */ + @Excel(name = "部门编码") + private String departmentId; + + /** 部门 */ + @Excel(name = "部门") + private String departmentName; + + /** 经手人编码 */ + @Excel(name = "经手人编码") + private String operatorId; + + /** 经手人 */ + @Excel(name = "经手人") + private String operatorName; + + /** 制单人 */ + @Excel(name = "制单人") + private String single; + + /** 审核人 */ + @Excel(name = "审核人") + private String reviewer; + + /** 存货编码 */ + @Excel(name = "存货编码") + private String materialId; + + /** 存货 */ + @Excel(name = "存货") + private String materialName; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String materialSpecification; + + /** 计量单位 */ + @Excel(name = "计量单位") + private String materialUnit; + + /** 实收数量 */ + @Excel(name = "实收数量") + private BigDecimal count; + + /** 入库调整 */ + @Excel(name = "入库调整") + private String stockInAdjustRemark; + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("stockInCode", getStockInCode()) + .append("docDate", getDocDate()) + .append("createDate", getCreateDate()) + .append("docId", getDocId()) + .append("businessType", getBusinessType()) + .append("repositoryId", getRepositoryId()) + .append("repositoryName", getRepositoryName()) + .append("stockInType", getStockInType()) + .append("supplierId", getSupplierId()) + .append("supplierName", getSupplierName()) + .append("departmentId", getDepartmentId()) + .append("departmentName", getDepartmentName()) + .append("operatorId", getOperatorId()) + .append("operatorName", getOperatorName()) + .append("remark", getRemark()) + .append("single", getSingle()) + .append("reviewer", getReviewer()) + .append("materialId", getMaterialId()) + .append("materialName", getMaterialName()) + .append("materialSpecification", getMaterialSpecification()) + .append("materialUnit", getMaterialUnit()) + .append("count", getCount()) + .append("stockInAdjustRemark", getStockInAdjustRemark()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzStockOut.java b/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzStockOut.java new file mode 100644 index 0000000..c0a84a9 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/domain/WzStockOut.java @@ -0,0 +1,251 @@ +package com.zhyc.module.stock.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.zhyc.common.annotation.Excel; +import com.zhyc.common.core.domain.BaseEntity; + +/** + * 出库记录对象 wz_stock_out + * + * @author HashMap + * @date 2025-08-05 + */ +@Getter +@Setter +public class WzStockOut extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 序号 + */ + private Long stockOutCode; + + /** + * 单据日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date docDate; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date createDate; + + /** + * 单据编号 + */ + @Excel(name = "单据编号") + private String docId; + + /** + * 业务类型 + */ + @Excel(name = "业务类型") + private String businessType; + + /** + * 仓库编码 + */ + @Excel(name = "仓库编码") + private String repositoryId; + + /** + * 仓库名称 + */ + @Excel(name = "仓库") + private String repositoryName; + + /** + * 项目分类 + */ + @Excel(name = "项目分类") + private String projectClassification; + + /** + * 项目编码 + */ + @Excel(name = "项目编码") + private String projectId; + + /** + * 项目 + */ + @Excel(name = "项目") + private String projectName; + + /** + * 生产车间编码 + */ + @Excel(name = "生产车间编码") + private String departmentId; + + /** + * 生产车间 + */ + @Excel(name = "生产车间") + private String departmentName; + + /** + * 领用人编码 + */ + @Excel(name = "领用人编码") + private String receiverId; + + /** + * 领用人 + */ + @Excel(name = "领用人") + private String receiver; + + /** + * 制单人 + */ + @Excel(name = "制单人") + private String single; + + /** + * 审核人 + */ + @Excel(name = "审核人") + private String reviewer; + + /** + * 审核时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reviewDate; + + /** + * 修改人 + */ + @Excel(name = "修改人") + private String modifier; + + /** + * 材料分类编码 + */ + @Excel(name = "材料分类编码") + private String materialClassId; + + /** + * 材料分类 + */ + @Excel(name = "材料分类") + private String materialClassName; + + /** + * 材料编码 + */ + @Excel(name = "材料编码") + private String materialId; + + /** + * 材料名称 + */ + @Excel(name = "材料名称") + private String materialName; + + /** + * 材料规格 + */ + @Excel(name = "材料规格") + private String materialSpecification; + + /** + * 计量单位 + */ + @Excel(name = "计量单位") + private String materialUnit; + + /** + * 数量 + */ + @Excel(name = "数量") + private BigDecimal count; + + /** + * 批号 + */ + @Excel(name = "批号") + private Long batchId; + + /** + * 生产日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date productionDate; + + /** + * 保质期 + */ + @Excel(name = "保质期") + private Long shelfLife; + + /** + * 保质期单位 + */ + @Excel(name = "保质期单位") + private String shelfLifeUnit; + + /** + * 失效日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date expirationDate; + + /** + * 代理人 + */ + @Excel(name = "代理人") + private String agent; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("stockOutCode", getStockOutCode()) + .append("docDate", getDocDate()) + .append("createDate", getCreateDate()) + .append("docId", getDocId()) + .append("businessType", getBusinessType()) + .append("repositoryId", getRepositoryId()) + .append("repositoryName", getRepositoryName()) + .append("projectClassification", getProjectClassification()) + .append("projectId", getProjectId()) + .append("projectName", getProjectName()) + .append("departmentId", getDepartmentId()) + .append("departmentName", getDepartmentName()) + .append("receiverId", getReceiverId()) + .append("receiver", getReceiver()) + .append("single", getSingle()) + .append("reviewer", getReviewer()) + .append("reviewDate", getReviewDate()) + .append("modifier", getModifier()) + .append("materialClassId", getMaterialClassId()) + .append("materialClassName", getMaterialClassName()) + .append("materialId", getMaterialId()) + .append("materialName", getMaterialName()) + .append("materialSpecification", getMaterialSpecification()) + .append("materialUnit", getMaterialUnit()) + .append("count", getCount()) + .append("batchId", getBatchId()) + .append("productionDate", getProductionDate()) + .append("shelfLife", getShelfLife()) + .append("shelfLifeUnit", getShelfLifeUnit()) + .append("expirationDate", getExpirationDate()) + .append("agent", getAgent()) + .toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzMaterialsManagementMapper.java b/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzMaterialsManagementMapper.java new file mode 100644 index 0000000..a1c75a9 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzMaterialsManagementMapper.java @@ -0,0 +1,71 @@ +package com.zhyc.module.stock.mapper; + +import java.util.List; +import com.zhyc.module.stock.domain.WzMaterialsManagement; +import org.apache.ibatis.annotations.Mapper; + +/** + * 物资管理Mapper接口 + * + * @author HashMap + * @date 2025-08-05 + */ +@Mapper +public interface WzMaterialsManagementMapper +{ + /** + * 查询物资管理 + * + * @param materialManagementCode 物资管理主键 + * @return 物资管理 + */ + WzMaterialsManagement selectWzMaterialsManagementByMaterialManagementCode(Long materialManagementCode); + + /** + * 查询物资管理列表 + * + * @param wzMaterialsManagement 物资管理 + * @return 物资管理集合 + */ + List selectWzMaterialsManagementList(WzMaterialsManagement wzMaterialsManagement); + + /** + * 新增物资管理 + * + * @param wzMaterialsManagement 物资管理 + * @return 结果 + */ + int insertWzMaterialsManagement(WzMaterialsManagement wzMaterialsManagement); + + /** + * 修改物资管理 + * + * @param wzMaterialsManagement 物资管理 + * @return 结果 + */ + int updateWzMaterialsManagement(WzMaterialsManagement wzMaterialsManagement); + + /** + * 删除物资管理 + * + * @param materialManagementCode 物资管理主键 + * @return 结果 + */ + int deleteWzMaterialsManagementByMaterialManagementCode(Long materialManagementCode); + + /** + * 批量删除物资管理 + * + * @param materialManagementCodes 需要删除的数据主键集合 + * @return 结果 + */ + int deleteWzMaterialsManagementByMaterialManagementCodes(Long[] materialManagementCodes); + + /** + * 以物资编码获取记录 + * + * @param materialID 物资编码 + * @return 结果 + */ + WzMaterialsManagement selectWzMaterialsManagementByMaterialID(String materialID); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzStockInMapper.java b/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzStockInMapper.java new file mode 100644 index 0000000..ed2fda8 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzStockInMapper.java @@ -0,0 +1,70 @@ +package com.zhyc.module.stock.mapper; + +import java.util.List; +import com.zhyc.module.stock.domain.WzStockIn; +import org.apache.ibatis.annotations.Mapper; + +/** + * 入库记录Mapper接口 + * + * @author HashMap + * @date 2025-08-05 + */ +@Mapper +public interface WzStockInMapper +{ + /** + * 查询入库记录 + * + * @param stockInCode 入库记录主键 + * @return 入库记录 + */ + WzStockIn selectWzStockInByStockInCode(Long stockInCode); + + /** + * 查询入库记录列表 + * + * @param wzStockIn 入库记录 + * @return 入库记录集合 + */ + List selectWzStockInList(WzStockIn wzStockIn); + + /** + * 新增入库记录 + * + * @param wzStockIn 入库记录 + * @return 结果 + */ + int insertWzStockIn(WzStockIn wzStockIn); + + /** + * 修改入库记录 + * + * @param wzStockIn 入库记录 + * @return 结果 + */ + int updateWzStockIn(WzStockIn wzStockIn); + + /** + * 删除入库记录 + * + * @param stockInCode 入库记录主键 + * @return 结果 + */ + int deleteWzStockInByStockInCode(Long stockInCode); + + /** + * 批量删除入库记录 + * + * @param stockInCodes 需要删除的数据主键集合 + * @return 结果 + */ + int deleteWzStockInByStockInCodes(Long[] stockInCodes); + + /** + * 查询最近的入库记录 + * + * @return 数据库中最近的入库记录 + */ + WzStockIn getEarliestStockIn(); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzStockOutMapper.java b/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzStockOutMapper.java new file mode 100644 index 0000000..a9ae9ce --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/mapper/WzStockOutMapper.java @@ -0,0 +1,70 @@ +package com.zhyc.module.stock.mapper; + +import java.util.List; +import com.zhyc.module.stock.domain.WzStockOut; +import org.apache.ibatis.annotations.Mapper; + +/** + * 出库记录Mapper接口 + * + * @author HashMap + * @date 2025-08-05 + */ +@Mapper +public interface WzStockOutMapper +{ + /** + * 查询出库记录 + * + * @param stockOutCode 出库记录主键 + * @return 出库记录 + */ + WzStockOut selectWzStockOutByStockOutCode(Long stockOutCode); + + /** + * 查询出库记录列表 + * + * @param wzStockOut 出库记录 + * @return 出库记录集合 + */ + List selectWzStockOutList(WzStockOut wzStockOut); + + /** + * 新增出库记录 + * + * @param wzStockOut 出库记录 + * @return 结果 + */ + int insertWzStockOut(WzStockOut wzStockOut); + + /** + * 修改出库记录 + * + * @param wzStockOut 出库记录 + * @return 结果 + */ + int updateWzStockOut(WzStockOut wzStockOut); + + /** + * 删除出库记录 + * + * @param stockOutCode 出库记录主键 + * @return 结果 + */ + int deleteWzStockOutByStockOutCode(Long stockOutCode); + + /** + * 批量删除出库记录 + * + * @param stockOutCodes 需要删除的数据主键集合 + * @return 结果 + */ + int deleteWzStockOutByStockOutCodes(Long[] stockOutCodes); + + /** + * 查询最近的记录 + * + * @return 结果 + */ + WzStockOut getEarliestStockOut(); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzMaterialsManagementService.java b/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzMaterialsManagementService.java new file mode 100644 index 0000000..46e71dc --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzMaterialsManagementService.java @@ -0,0 +1,71 @@ +package com.zhyc.module.stock.service; + +import java.util.List; +import com.zhyc.module.stock.domain.WzMaterialsManagement; + +/** + * 物资管理Service接口 + * + * @author HashMap + * @date 2025-08-05 + */ +public interface IWzMaterialsManagementService +{ + /** + * 查询物资管理 + * + * @param materialManagementCode 物资管理主键 + * @return 物资管理 + */ + WzMaterialsManagement selectWzMaterialsManagementByMaterialManagementCode(Long materialManagementCode); + + /** + * 查询物资管理列表 + * + * @param wzMaterialsManagement 物资管理 + * @return 物资管理集合 + */ + List selectWzMaterialsManagementList(WzMaterialsManagement wzMaterialsManagement); + + /** + * 新增物资管理 + * + * @param wzMaterialsManagement 物资管理 + * @return 结果 + */ + int insertWzMaterialsManagement(WzMaterialsManagement wzMaterialsManagement); + + /** + * 修改物资管理 + * + * @param wzMaterialsManagement 物资管理 + * @return 结果 + */ + int updateWzMaterialsManagement(WzMaterialsManagement wzMaterialsManagement); + + /** + * 批量删除物资管理 + * + * @param materialManagementCodes 需要删除的物资管理主键集合 + * @return 结果 + */ + int deleteWzMaterialsManagementByMaterialManagementCodes(Long[] materialManagementCodes); + + /** + * 删除物资管理信息 + * + * @param materialManagementCode 物资管理主键 + * @return 结果 + */ + int deleteWzMaterialsManagementByMaterialManagementCode(Long materialManagementCode); + + /** + * 导入入库数据 + * + * @param MaterialsManagementList 物资数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + String importUser(List MaterialsManagementList, Boolean isUpdateSupport, String operName); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzStockInService.java b/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzStockInService.java new file mode 100644 index 0000000..8d986a0 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzStockInService.java @@ -0,0 +1,72 @@ +package com.zhyc.module.stock.service; + +import java.util.List; + +import com.zhyc.module.stock.domain.WzStockIn; + +/** + * 入库记录Service接口 + * + * @author HashMap + * @date 2025-08-05 + */ +public interface IWzStockInService +{ + /** + * 查询入库记录 + * + * @param stockInCode 入库记录主键 + * @return 入库记录 + */ + WzStockIn selectWzStockInByStockInCode(Long stockInCode); + + /** + * 查询入库记录列表 + * + * @param wzStockIn 入库记录 + * @return 入库记录集合 + */ + List selectWzStockInList(WzStockIn wzStockIn); + + /** + * 新增入库记录 + * + * @param wzStockIn 入库记录 + * @return 结果 + */ + int insertWzStockIn(WzStockIn wzStockIn); + + /** + * 修改入库记录 + * + * @param wzStockIn 入库记录 + * @return 结果 + */ + int updateWzStockIn(WzStockIn wzStockIn); + + /** + * 批量删除入库记录 + * + * @param stockInCodes 需要删除的入库记录主键集合 + * @return 结果 + */ + int deleteWzStockInByStockInCodes(Long[] stockInCodes); + + /** + * 删除入库记录信息 + * + * @param stockInCode 入库记录主键 + * @return 结果 + */ + int deleteWzStockInByStockInCode(Long stockInCode); + + /** + * 导入入库数据 + * + * @param StockInList 入库数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + String importUser(List StockInList, Boolean isUpdateSupport, String operName); +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzStockOutService.java b/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzStockOutService.java new file mode 100644 index 0000000..6e4c75b --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/service/IWzStockOutService.java @@ -0,0 +1,72 @@ +package com.zhyc.module.stock.service; + +import java.util.List; + +import com.zhyc.module.stock.domain.WzStockOut; + +/** + * 出库记录Service接口 + * + * @author HashMap + * @date 2025-08-05 + */ +public interface IWzStockOutService +{ + /** + * 查询出库记录 + * + * @param stockOutCode 出库记录主键 + * @return 出库记录 + */ + WzStockOut selectWzStockOutByStockOutCode(Long stockOutCode); + + /** + * 查询出库记录列表 + * + * @param wzStockOut 出库记录 + * @return 出库记录集合 + */ + List selectWzStockOutList(WzStockOut wzStockOut); + + /** + * 新增出库记录 + * + * @param wzStockOut 出库记录 + * @return 结果 + */ + int insertWzStockOut(WzStockOut wzStockOut); + + /** + * 修改出库记录 + * + * @param wzStockOut 出库记录 + * @return 结果 + */ + int updateWzStockOut(WzStockOut wzStockOut); + + /** + * 批量删除出库记录 + * + * @param stockOutCodes 需要删除的出库记录主键集合 + * @return 结果 + */ + int deleteWzStockOutByStockOutCodes(Long[] stockOutCodes); + + /** + * 删除出库记录信息 + * + * @param stockOutCode 出库记录主键 + * @return 结果 + */ + int deleteWzStockOutByStockOutCode(Long stockOutCode); + + /** + * 导入入库数据 + * + * @param WzStockOutList 入库数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + String importUser(List WzStockOutList, Boolean isUpdateSupport, String operName) throws Exception; +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzMaterialsManagementServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzMaterialsManagementServiceImpl.java new file mode 100644 index 0000000..ab6d272 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzMaterialsManagementServiceImpl.java @@ -0,0 +1,132 @@ +package com.zhyc.module.stock.service.impl; + +import java.util.List; + +import com.zhyc.common.exception.ServiceException; +import com.zhyc.common.utils.StringUtils; +import org.springframework.stereotype.Service; +import com.zhyc.module.stock.mapper.WzMaterialsManagementMapper; +import com.zhyc.module.stock.domain.WzMaterialsManagement; +import com.zhyc.module.stock.service.IWzMaterialsManagementService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 物资管理Service业务层处理 + * + * @author HashMap + * @date 2025-08-05 + */ +@Service +public class WzMaterialsManagementServiceImpl implements IWzMaterialsManagementService { + private final WzMaterialsManagementMapper wzMaterialsManagementMapper; + + public WzMaterialsManagementServiceImpl(WzMaterialsManagementMapper wzMaterialsManagementMapper) { + this.wzMaterialsManagementMapper = wzMaterialsManagementMapper; + } + + /** + * 查询物资管理 + * + * @param materialManagementCode 物资管理主键 + * @return 物资管理 + */ + @Override + public WzMaterialsManagement selectWzMaterialsManagementByMaterialManagementCode(Long materialManagementCode) { + return wzMaterialsManagementMapper.selectWzMaterialsManagementByMaterialManagementCode(materialManagementCode); + } + + /** + * 查询物资管理列表 + * + * @param wzMaterialsManagement 物资管理 + * @return 物资管理 + */ + @Override + public List selectWzMaterialsManagementList(WzMaterialsManagement wzMaterialsManagement) { + return wzMaterialsManagementMapper.selectWzMaterialsManagementList(wzMaterialsManagement); + } + + /** + * 新增物资管理 + * + * @param wzMaterialsManagement 物资管理 + * @return 结果 + */ + @Override + public int insertWzMaterialsManagement(WzMaterialsManagement wzMaterialsManagement) { + return wzMaterialsManagementMapper.insertWzMaterialsManagement(wzMaterialsManagement); + } + + /** + * 修改物资管理 + * + * @param wzMaterialsManagement 物资管理 + * @return 结果 + */ + @Override + public int updateWzMaterialsManagement(WzMaterialsManagement wzMaterialsManagement) { + return wzMaterialsManagementMapper.updateWzMaterialsManagement(wzMaterialsManagement); + } + + /** + * 批量删除物资管理 + * + * @param materialManagementCodes 需要删除的物资管理主键 + * @return 结果 + */ + @Override + public int deleteWzMaterialsManagementByMaterialManagementCodes(Long[] materialManagementCodes) { + return wzMaterialsManagementMapper.deleteWzMaterialsManagementByMaterialManagementCodes(materialManagementCodes); + } + + /** + * 删除物资管理信息 + * + * @param materialManagementCode 物资管理主键 + * @return 结果 + */ + @Override + public int deleteWzMaterialsManagementByMaterialManagementCode(Long materialManagementCode) { + return wzMaterialsManagementMapper.deleteWzMaterialsManagementByMaterialManagementCode(materialManagementCode); + } + + /** + * 导入用户数据 + * + * @param MaterialsManagementList 物资数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String importUser(List MaterialsManagementList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(MaterialsManagementList) || MaterialsManagementList.isEmpty()) { + throw new ServiceException("导入用户数据不能为空!"); + } + int successNum = 0; + int sameNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + try { + for (WzMaterialsManagement wzMaterialsManagement : MaterialsManagementList) { + if (wzMaterialsManagement.getMaterialId() != null) { + WzMaterialsManagement isExist = wzMaterialsManagementMapper.selectWzMaterialsManagementByMaterialID(wzMaterialsManagement.getMaterialId()); + // 存在则更新 + if (isExist != null) { + sameNum++; + wzMaterialsManagementMapper.updateWzMaterialsManagement(wzMaterialsManagement); + continue; + } + } + int result = wzMaterialsManagementMapper.insertWzMaterialsManagement(wzMaterialsManagement); + if (result > 0) successNum++; + } + } catch (Exception e) { + return failureMsg.append("导入出错:").append(e.getMessage()).toString(); + } + successMsg.append("导入完成 : 导入 ").append(successNum).append(" 条\n更新 ").append(sameNum).append(" 条(已存在记录)"); + return successMsg.toString(); + } + +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzStockInServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzStockInServiceImpl.java new file mode 100644 index 0000000..7af887f --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzStockInServiceImpl.java @@ -0,0 +1,139 @@ +package com.zhyc.module.stock.service.impl; + +import java.util.List; + +import com.zhyc.common.exception.ServiceException; +import com.zhyc.common.utils.StringUtils; +import org.springframework.stereotype.Service; +import com.zhyc.module.stock.mapper.WzStockInMapper; +import com.zhyc.module.stock.domain.WzStockIn; +import com.zhyc.module.stock.service.IWzStockInService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 入库记录Service业务层处理 + * + * @author HashMap + * @date 2025-08-05 + */ +@Service +public class WzStockInServiceImpl implements IWzStockInService { + private final WzStockInMapper wzStockInMapper; + + public WzStockInServiceImpl(WzStockInMapper wzStockInMapper) { + this.wzStockInMapper = wzStockInMapper; + } + + /** + * 查询入库记录 + * + * @param stockInCode 入库记录主键 + * @return 入库记录 + */ + @Override + public WzStockIn selectWzStockInByStockInCode(Long stockInCode) { + return wzStockInMapper.selectWzStockInByStockInCode(stockInCode); + } + + /** + * 查询入库记录列表 + * + * @param wzStockIn 入库记录 + * @return 入库记录 + */ + @Override + public List selectWzStockInList(WzStockIn wzStockIn) { + return wzStockInMapper.selectWzStockInList(wzStockIn); + } + + /** + * 新增入库记录 + * + * @param wzStockIn 入库记录 + * @return 结果 + */ + @Override + public int insertWzStockIn(WzStockIn wzStockIn) { + return wzStockInMapper.insertWzStockIn(wzStockIn); + } + + /** + * 修改入库记录 + * + * @param wzStockIn 入库记录 + * @return 结果 + */ + @Override + public int updateWzStockIn(WzStockIn wzStockIn) { + return wzStockInMapper.updateWzStockIn(wzStockIn); + } + + /** + * 批量删除入库记录 + * + * @param stockInCodes 需要删除的入库记录主键 + * @return 结果 + */ + @Override + public int deleteWzStockInByStockInCodes(Long[] stockInCodes) { + return wzStockInMapper.deleteWzStockInByStockInCodes(stockInCodes); + } + + /** + * 删除入库记录信息 + * + * @param stockInCode 入库记录主键 + * @return 结果 + */ + @Override + public int deleteWzStockInByStockInCode(Long stockInCode) { + return wzStockInMapper.deleteWzStockInByStockInCode(stockInCode); + } + + /** + * 导入用户数据 + * + * @param StockInList 用户数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String importUser(List StockInList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(StockInList) || StockInList.isEmpty()) { + throw new ServiceException("导入用户数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + int sameNum = 0; + boolean emptyTable = true; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + try { + WzStockIn earliestStockIn = wzStockInMapper.getEarliestStockIn(); + if (null != earliestStockIn) emptyTable = false; + System.out.println(earliestStockIn); + for (WzStockIn wzStockIn : StockInList) { + if (!emptyTable && earliestStockIn.getDocDate().getTime() >= wzStockIn.getDocDate().getTime()) { + sameNum++; + continue; + } + int result = wzStockInMapper.insertWzStockIn(wzStockIn); + if (result == 0) { + failureNum++; + failureMsg.append("失败的项:").append(wzStockIn.getDocId()).append("\n"); + } + else successNum++; + } + + } catch (Exception e) { + failureNum++; + } + if (failureNum > 0) { + return failureMsg.toString(); + } + successMsg.append("导入完成 : 导入 ").append(successNum).append(" 条\n跳过 ").append(sameNum).append(" 条(重复记录)"); + return successMsg.toString(); + } +} diff --git a/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzStockOutServiceImpl.java b/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzStockOutServiceImpl.java new file mode 100644 index 0000000..5fb6c36 --- /dev/null +++ b/zhyc-module/src/main/java/com/zhyc/module/stock/service/impl/WzStockOutServiceImpl.java @@ -0,0 +1,136 @@ +package com.zhyc.module.stock.service.impl; + +import java.util.Date; +import java.util.List; + +import com.zhyc.common.exception.ServiceException; +import com.zhyc.common.utils.StringUtils; +import org.springframework.stereotype.Service; +import com.zhyc.module.stock.mapper.WzStockOutMapper; +import com.zhyc.module.stock.domain.WzStockOut; +import com.zhyc.module.stock.service.IWzStockOutService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 出库记录Service业务层处理 + * + * @author HashMap + * @date 2025-08-05 + */ +@Service +public class WzStockOutServiceImpl implements IWzStockOutService { + private final WzStockOutMapper wzStockOutMapper; + + public WzStockOutServiceImpl(WzStockOutMapper wzStockOutMapper) { + this.wzStockOutMapper = wzStockOutMapper; + } + + /** + * 查询出库记录 + * + * @param stockOutCode 出库记录主键 + * @return 出库记录 + */ + @Override + public WzStockOut selectWzStockOutByStockOutCode(Long stockOutCode) { + return wzStockOutMapper.selectWzStockOutByStockOutCode(stockOutCode); + } + + /** + * 查询出库记录列表 + * + * @param wzStockOut 出库记录 + * @return 出库记录 + */ + @Override + public List selectWzStockOutList(WzStockOut wzStockOut) { + return wzStockOutMapper.selectWzStockOutList(wzStockOut); + } + + /** + * 新增出库记录 + * + * @param wzStockOut 出库记录 + * @return 结果 + */ + @Override + public int insertWzStockOut(WzStockOut wzStockOut) { + return wzStockOutMapper.insertWzStockOut(wzStockOut); + } + + /** + * 修改出库记录 + * + * @param wzStockOut 出库记录 + * @return 结果 + */ + @Override + public int updateWzStockOut(WzStockOut wzStockOut) { + return wzStockOutMapper.updateWzStockOut(wzStockOut); + } + + /** + * 批量删除出库记录 + * + * @param stockOutCodes 需要删除的出库记录主键 + * @return 结果 + */ + @Override + public int deleteWzStockOutByStockOutCodes(Long[] stockOutCodes) { + return wzStockOutMapper.deleteWzStockOutByStockOutCodes(stockOutCodes); + } + + /** + * 删除出库记录信息 + * + * @param stockOutCode 出库记录主键 + * @return 结果 + */ + @Override + public int deleteWzStockOutByStockOutCode(Long stockOutCode) { + return wzStockOutMapper.deleteWzStockOutByStockOutCode(stockOutCode); + } + + /** + * 导入用户数据 + * + * @param WzStockOutList 入库数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String importUser(List WzStockOutList, Boolean isUpdateSupport, String operName) throws Exception { + if (StringUtils.isNull(WzStockOutList) || WzStockOutList.isEmpty()) { + throw new ServiceException("导入入库数据不能为空!"); + } + int successNum = 0; + int sameNum = 0; + StringBuilder successMsg = new StringBuilder(); + WzStockOut earliestStockOut = wzStockOutMapper.getEarliestStockOut(); + // 确保最近记录有值 + if (null == earliestStockOut || earliestStockOut.getCreateDate() == null) { + if (earliestStockOut != null) { + earliestStockOut.setCreateDate(new Date(0)); + } else { + earliestStockOut = new WzStockOut(); + earliestStockOut.setCreateDate(new Date(0)); + } + } + for (WzStockOut wzStockOut : WzStockOutList) { + if (null != wzStockOut && null != wzStockOut.getCreateDate()) { + if (earliestStockOut.getCreateDate().getTime() >= wzStockOut.getCreateDate().getTime()) { + sameNum++; + continue; + } + } else { + continue; + } + int result = wzStockOutMapper.insertWzStockOut(wzStockOut); + if (result > 0) successNum++; + } + successMsg.append("导入完成 : 导入 ").append(successNum).append(" 条\n跳过 ").append(sameNum).append(" 条(重复记录)"); + return successMsg.toString(); + } +} diff --git a/zhyc-module/src/main/resources/mapper/base/BasSheepMapper.xml b/zhyc-module/src/main/resources/mapper/base/BasSheepMapper.xml index c39e3a5..f42546a 100644 --- a/zhyc-module/src/main/resources/mapper/base/BasSheepMapper.xml +++ b/zhyc-module/src/main/resources/mapper/base/BasSheepMapper.xml @@ -128,7 +128,8 @@ and source_date = #{sourceDate} and source_ranch_id = #{sourceRanchId} and comment = #{comment} - and is_delete = #{isDelete} + and is_delete = 0 + and is_delete = #{isDelete} @@ -151,20 +152,24 @@ bv.variety AS varietyName FROM bas_sheep s LEFT JOIN bas_sheep_variety bv ON s.variety_id = bv.id - WHERE s.manage_tags = #{manageTags} LIMIT 1 + WHERE s.manage_tags = #{manageTags} + AND s.is_delete = 0 LIMIT 1 - SELECT COUNT(*) FROM bas_sheep WHERE manage_tags = #{tag} AND is_delete = 0 + SELECT COUNT(*) + FROM bas_sheep + WHERE manage_tags = #{tag} + AND s.is_delete = 0 \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/base/BreedRamFileMapper.xml b/zhyc-module/src/main/resources/mapper/base/BreedRamFileMapper.xml new file mode 100644 index 0000000..6f666ee --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/base/BreedRamFileMapper.xml @@ -0,0 +1,417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, ordinary_ear_number, ranch_id, ranch_name, sheepfold_id, sheepfold_name, electronic_tags, variety_id, variety, sheep_category, current_status, birthday, dynamic_info, month_age, birth_weight, weaning_date, weaning_day_age, weaning_weight, weaning_daily_gain, post_weaning_daily_gain, current_weight, current_weight_date, activity_level, sexual_status, scrotum_circumference, sperm_collection_time, sperm_volume, sperm_vitality, sperm_density, sperm_quality, breeding_status, last_plan_time, current_plan_time, comment, protein_rate_ebv, milk_fat_rate_ebv, scs_ebv, growth_performance_ebv, resistance_ebv, reproduction_performance_ebv, body_type_ebv, comprehensive_breeding_value, father_number, mother_number, grandfather_number, grandmother_number, maternal_grandfather_number, maternal_grandmother_number, is_core_flock, is_breeding_use, pregnancy_check, total_mated_ewes, natural_pregnancy_check_ewes, natural_conception_rate, artificial_pregnancy_check_ewes, artificial_conception_rate, ram_mother_milk_volume, milk_production_ebv, accuracy, information_count, is_paternity_tested, create_by, create_time, update_by, update_time, is_delete from breed_ram_file + + + + + + + + + + + + + + + + + + + + insert into breed_ram_file + + ordinary_ear_number, + ranch_id, + ranch_name, + sheepfold_id, + sheepfold_name, + electronic_tags, + variety_id, + variety, + sheep_category, + current_status, + birthday, + dynamic_info, + month_age, + birth_weight, + weaning_date, + weaning_day_age, + weaning_weight, + weaning_daily_gain, + post_weaning_daily_gain, + current_weight, + current_weight_date, + activity_level, + sexual_status, + scrotum_circumference, + sperm_collection_time, + sperm_volume, + sperm_vitality, + sperm_density, + sperm_quality, + breeding_status, + last_plan_time, + current_plan_time, + comment, + protein_rate_ebv, + milk_fat_rate_ebv, + scs_ebv, + growth_performance_ebv, + resistance_ebv, + reproduction_performance_ebv, + body_type_ebv, + comprehensive_breeding_value, + father_number, + mother_number, + grandfather_number, + grandmother_number, + maternal_grandfather_number, + maternal_grandmother_number, + is_core_flock, + is_breeding_use, + pregnancy_check, + total_mated_ewes, + natural_pregnancy_check_ewes, + natural_conception_rate, + artificial_pregnancy_check_ewes, + artificial_conception_rate, + ram_mother_milk_volume, + milk_production_ebv, + accuracy, + information_count, + is_paternity_tested, + create_by, + create_time, + update_by, + update_time, + is_delete, + + + #{ordinaryEarNumber}, + #{ranchId}, + #{ranchName}, + #{sheepfoldId}, + #{sheepfoldName}, + #{electronicTags}, + #{varietyId}, + #{variety}, + #{sheepCategory}, + #{currentStatus}, + #{birthday}, + #{dynamicInfo}, + #{monthAge}, + #{birthWeight}, + #{weaningDate}, + #{weaningDayAge}, + #{weaningWeight}, + #{weaningDailyGain}, + #{postWeaningDailyGain}, + #{currentWeight}, + #{currentWeightDate}, + #{activityLevel}, + #{sexualStatus}, + #{scrotumCircumference}, + #{spermCollectionTime}, + #{spermVolume}, + #{spermVitality}, + #{spermDensity}, + #{spermQuality}, + #{breedingStatus}, + #{lastPlanTime}, + #{currentPlanTime}, + #{remark}, + #{proteinRateEbv}, + #{milkFatRateEbv}, + #{scsEbv}, + #{growthPerformanceEbv}, + #{resistanceEbv}, + #{reproductionPerformanceEbv}, + #{bodyTypeEbv}, + #{comprehensiveBreedingValue}, + #{fatherNumber}, + #{motherNumber}, + #{grandfatherNumber}, + #{grandmotherNumber}, + #{maternalGrandfatherNumber}, + #{maternalGrandmotherNumber}, + #{isCoreFlock}, + #{isBreedingUse}, + #{pregnancyCheck}, + #{totalMatedEwes}, + #{naturalPregnancyCheckEwes}, + #{naturalConceptionRate}, + #{artificialPregnancyCheckEwes}, + #{artificialConceptionRate}, + #{ramMotherMilkVolume}, + #{milkProductionEbv}, + #{accuracy}, + #{informationCount}, + #{isPaternityTested}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{isDelete}, + + + + + update breed_ram_file + + ordinary_ear_number = #{ordinaryEarNumber}, + ranch_id = #{ranchId}, + ranch_name = #{ranchName}, + sheepfold_id = #{sheepfoldId}, + sheepfold_name = #{sheepfoldName}, + electronic_tags = #{electronicTags}, + variety_id = #{varietyId}, + variety = #{variety}, + sheep_category = #{sheepCategory}, + current_status = #{currentStatus}, + birthday = #{birthday}, + dynamic_info = #{dynamicInfo}, + month_age = #{monthAge}, + birth_weight = #{birthWeight}, + weaning_date = #{weaningDate}, + weaning_day_age = #{weaningDayAge}, + weaning_weight = #{weaningWeight}, + weaning_daily_gain = #{weaningDailyGain}, + post_weaning_daily_gain = #{postWeaningDailyGain}, + current_weight = #{currentWeight}, + current_weight_date = #{currentWeightDate}, + activity_level = #{activityLevel}, + sexual_status = #{sexualStatus}, + scrotum_circumference = #{scrotumCircumference}, + sperm_collection_time = #{spermCollectionTime}, + sperm_volume = #{spermVolume}, + sperm_vitality = #{spermVitality}, + sperm_density = #{spermDensity}, + sperm_quality = #{spermQuality}, + breeding_status = #{breedingStatus}, + last_plan_time = #{lastPlanTime}, + current_plan_time = #{currentPlanTime}, + comment = #{remark}, + protein_rate_ebv = #{proteinRateEbv}, + milk_fat_rate_ebv = #{milkFatRateEbv}, + scs_ebv = #{scsEbv}, + growth_performance_ebv = #{growthPerformanceEbv}, + resistance_ebv = #{resistanceEbv}, + reproduction_performance_ebv = #{reproductionPerformanceEbv}, + body_type_ebv = #{bodyTypeEbv}, + comprehensive_breeding_value = #{comprehensiveBreedingValue}, + father_number = #{fatherNumber}, + mother_number = #{motherNumber}, + grandfather_number = #{grandfatherNumber}, + grandmother_number = #{grandmotherNumber}, + maternal_grandfather_number = #{maternalGrandfatherNumber}, + maternal_grandmother_number = #{maternalGrandmotherNumber}, + is_core_flock = #{isCoreFlock}, + is_breeding_use = #{isBreedingUse}, + pregnancy_check = #{pregnancyCheck}, + total_mated_ewes = #{totalMatedEwes}, + natural_pregnancy_check_ewes = #{naturalPregnancyCheckEwes}, + natural_conception_rate = #{naturalConceptionRate}, + artificial_pregnancy_check_ewes = #{artificialPregnancyCheckEwes}, + artificial_conception_rate = #{artificialConceptionRate}, + ram_mother_milk_volume = #{ramMotherMilkVolume}, + milk_production_ebv = #{milkProductionEbv}, + accuracy = #{accuracy}, + information_count = #{informationCount}, + is_paternity_tested = #{isPaternityTested}, + update_by = #{updateBy}, + update_time = #{updateTime}, + is_delete = #{isDelete}, + + where id = #{id} + + + + delete from breed_ram_file where id = #{id} + + + + delete from breed_ram_file where id in + + #{id} + + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgFeedDetailsMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgFeedDetailsMapper.xml new file mode 100644 index 0000000..0966729 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgFeedDetailsMapper.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + select id, fodder, number, nuit from sg_feed_details + + + + + + + + insert into sg_feed_details + + fodder, + number, + nuit, + + + #{fodder}, + #{number}, + #{nuit}, + + + + + update sg_feed_details + + fodder = #{fodder}, + number = #{number}, + nuit = #{nuit}, + + where id = #{id} + + + + delete from sg_feed_details where id = #{id} + + + + delete from sg_feed_details where id in + + #{id} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgFeedInfoMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgFeedInfoMapper.xml new file mode 100644 index 0000000..536e136 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgFeedInfoMapper.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, formula_id, sheepfold_id, average, plan_monring, actual_monring, plan_noon, actual_noon, plan_evenig, actual_evening, particle, other, replenish, plan_date, comment, create_by, create_time from sg_feed_info + + + + + + + + insert into sg_feed_info + + formula_id, + sheepfold_id, + average, + plan_monring, + actual_monring, + plan_noon, + actual_noon, + plan_evenig, + actual_evening, + particle, + other, + replenish, + plan_date, + comment, + create_by, + create_time, + + + #{formulaId}, + #{sheepfoldId}, + #{average}, + #{planMonring}, + #{actualMonring}, + #{planNoon}, + #{actualNoon}, + #{planEvenig}, + #{actualEvening}, + #{particle}, + #{other}, + #{replenish}, + #{planDate}, + #{comment}, + #{createBy}, + #{createTime}, + + + + + update sg_feed_info + + formula_id = #{formulaId}, + sheepfold_id = #{sheepfoldId}, + average = #{average}, + plan_monring = #{planMonring}, + actual_monring = #{actualMonring}, + plan_noon = #{planNoon}, + actual_noon = #{actualNoon}, + plan_evenig = #{planEvenig}, + actual_evening = #{actualEvening}, + particle = #{particle}, + other = #{other}, + replenish = #{replenish}, + plan_date = #{planDate}, + comment = #{comment}, + create_by = #{createBy}, + create_time = #{createTime}, + + where id = #{id} + + + + delete from sg_feed_info where id = #{id} + + + + delete from sg_feed_info where id in + + #{id} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgFeedPlanMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgFeedPlanMapper.xml new file mode 100644 index 0000000..fe2b6e3 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgFeedPlanMapper.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select create_date, formula_id, sheep_house_id, sheep_count, plan_daily_size, plan_morning_size, plan_morning_total, ratio_morning, actual_morning_size, plan_noon_size, plan_noon_total, actual_noon_size, ratio_noon, plan_afternoon_size, plan_afternoon_total, actual_afternoon_size, ratio_afternoon, plan_feed_total, zookeeper, plan_date, remark from sg_feed_plan + + + + + + + + insert into sg_feed_plan + + create_date, + formula_id, + sheep_house_id, + sheep_count, + plan_daily_size, + plan_morning_size, + plan_morning_total, + ratio_morning, + actual_morning_size, + plan_noon_size, + plan_noon_total, + actual_noon_size, + ratio_noon, + plan_afternoon_size, + plan_afternoon_total, + actual_afternoon_size, + ratio_afternoon, + plan_feed_total, + zookeeper, + plan_date, + remark, + + + #{createDate}, + #{formulaId}, + #{sheepHouseId}, + #{sheepCount}, + #{planDailySize}, + #{planMorningSize}, + #{planMorningTotal}, + #{ratioMorning}, + #{actualMorningSize}, + #{planNoonSize}, + #{planNoonTotal}, + #{actualNoonSize}, + #{ratioNoon}, + #{planAfternoonSize}, + #{planAfternoonTotal}, + #{actualAfternoonSize}, + #{ratioAfternoon}, + #{planFeedTotal}, + #{zookeeper}, + #{planDate}, + #{remark}, + + + + + update sg_feed_plan + + formula_id = #{formulaId}, + sheep_house_id = #{sheepHouseId}, + sheep_count = #{sheepCount}, + plan_daily_size = #{planDailySize}, + plan_morning_size = #{planMorningSize}, + plan_morning_total = #{planMorningTotal}, + ratio_morning = #{ratioMorning}, + actual_morning_size = #{actualMorningSize}, + plan_noon_size = #{planNoonSize}, + plan_noon_total = #{planNoonTotal}, + actual_noon_size = #{actualNoonSize}, + ratio_noon = #{ratioNoon}, + plan_afternoon_size = #{planAfternoonSize}, + plan_afternoon_total = #{planAfternoonTotal}, + actual_afternoon_size = #{actualAfternoonSize}, + ratio_afternoon = #{ratioAfternoon}, + plan_feed_total = #{planFeedTotal}, + zookeeper = #{zookeeper}, + plan_date = #{planDate}, + remark = #{remark}, + + where create_date = #{createDate} + + + + delete from sg_feed_plan where create_date = #{createDate} + + + + delete from sg_feed_plan where create_date in + + #{createDate} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgFeedRatioMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgFeedRatioMapper.xml new file mode 100644 index 0000000..2ebb1fd --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgFeedRatioMapper.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + select id, morning, noon, evening from sg_feed_ratio + + + + + + + + insert into sg_feed_ratio + + morning, + noon, + evening, + + + #{morning}, + #{noon}, + #{evening}, + + + + + update sg_feed_ratio + + morning = #{morning}, + noon = #{noon}, + evening = #{evening}, + + where id = #{id} + + + + delete from sg_feed_ratio where id = #{id} + + + + delete from sg_feed_ratio where id in + + #{id} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgFodderMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgFodderMapper.xml new file mode 100644 index 0000000..8f4638b --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgFodderMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + select id, name, fodder_type from sg_fodder + + + + + + + + insert into sg_fodder + + name, + fodder_type, + + + #{name}, + #{fodderType}, + + + + + update sg_fodder + + name = #{name}, + fodder_type = #{fodderType}, + + where id = #{id} + + + + delete from sg_fodder where id = #{id} + + + + delete from sg_fodder where id in + + #{id} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgFormulaListMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgFormulaListMapper.xml new file mode 100644 index 0000000..f422ccb --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgFormulaListMapper.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + select code, formula_id, material_id, material_name, ratio, is_granular, is_supplement from sg_formula_list + + + + + + + + insert into sg_formula_list + + code, + formula_id, + batch_id, + material_id, + material_name, + ratio, + is_granular, + is_supplement, + + + #{code}, + #{formulaId}, + #{batchId}, + #{materialId}, + #{materialName}, + #{ratio}, + #{isGranular}, + #{isSupplement}, + + + + + update sg_formula_list + + formula_id = #{formulaId}, + material_id = #{materialId}, + material_name = #{materialName}, + ratio = #{ratio}, + is_granular = #{isGranular}, + is_supplement = #{isSupplement}, + + where code = #{code} + + + + delete from sg_formula_list where code = #{code} + + + + delete from sg_formula_list where code in + + #{code} + + + + + DELETE FROM sg_formula_list WHERE formula_id = #{formulaId} AND batch_id = #{batchId} + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgFormulaManagementMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgFormulaManagementMapper.xml new file mode 100644 index 0000000..17602f1 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgFormulaManagementMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + select formula_id, feed_stage, batch_id, use_start_date, use_end_date, use_state, remark from sg_formula_management + + + + + + + + insert into sg_formula_management + + formula_id, + feed_stage, + batch_id, + use_start_date, + use_end_date, + use_state, + remark, + + + #{formulaId}, + #{feedStage}, + #{batchId}, + #{useStartDate}, + #{useEndDate}, + #{useState}, + #{remark}, + + + + + update sg_formula_management + + feed_stage = #{feedStage}, + use_start_date = #{useStartDate}, + use_end_date = #{useEndDate}, + use_state = #{useState}, + remark = #{remark}, + + where formula_id = #{formulaId} AND batch_id = #{batchId} + + + + delete from sg_formula_management where formula_id = #{formulaId} + + + + delete from sg_formula_management where formula_id in + + #{formulaId} + + + + delete from sg_formula_management where formula_id = #{formulaId} and batch_id = #{batchId} + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/feed/SgMaterialMapper.xml b/zhyc-module/src/main/resources/mapper/feed/SgMaterialMapper.xml new file mode 100644 index 0000000..f4960c9 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/feed/SgMaterialMapper.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + select material_id, material_name, is_granular from sg_material + + + + + + + + insert into sg_material + + material_id, + material_name, + is_granular, + + + #{materialId}, + #{materialName}, + #{isGranular}, + + + + + update sg_material + + material_name = #{materialName}, + is_granular = #{isGranular}, + + where material_id = #{materialId} + + + + delete from sg_material where material_id = #{materialId} + + + + delete from sg_material where material_id in + + #{materialId} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/sheep_death/ScSheepDeathMapper.xml b/zhyc-module/src/main/resources/mapper/sheep_death/ScSheepDeathMapper.xml new file mode 100644 index 0000000..baedeeb --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/sheep_death/ScSheepDeathMapper.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, sheep_id, manage_tags, event_type, death_date, disease_type_id, disease_subtype_id, disposal_direction, technician, handler, work_group, create_by, create_time, comment, update_by, update_time, is_delete from sc_sheep_death + + + + + + + + + + + insert into sc_sheep_death + + sheep_id, + manage_tags, + event_type, + death_date, + disease_type_id, + disease_subtype_id, + disposal_direction, + technician, + handler, + work_group, + create_by, + create_time, + comment, + update_by, + update_time, + is_delete, + + + #{sheepId}, + #{manageTags}, + #{eventType}, + #{deathDate}, + #{diseaseTypeId}, + #{diseaseSubtypeId}, + #{disposalDirection}, + #{technician}, + #{handler}, + #{workGroup}, + #{createBy}, + #{createTime}, + #{comment}, + #{updateBy}, + #{updateTime}, + #{isDelete}, + + + + + update sc_sheep_death + + sheep_id = #{sheepId}, + manage_tags = #{manageTags}, + event_type = #{eventType}, + death_date = #{deathDate}, + disease_type_id = #{diseaseTypeId}, + disease_subtype_id = #{diseaseSubtypeId}, + disposal_direction = #{disposalDirection}, + technician = #{technician}, + handler = #{handler}, + work_group = #{workGroup}, + create_by = #{createBy}, + create_time = #{createTime}, + comment = #{comment}, + update_by = #{updateBy}, + update_time = #{updateTime}, + is_delete = #{isDelete}, + + where id = #{id} + + + + delete from sc_sheep_death where id = #{id} + + + + delete from sc_sheep_death where id in + + #{id} + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/stock/WzMaterialsManagementMapper.xml b/zhyc-module/src/main/resources/mapper/stock/WzMaterialsManagementMapper.xml new file mode 100644 index 0000000..d2347c4 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/stock/WzMaterialsManagementMapper.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + select material_management_code, material_id, material_name, batch_id, material_specification, material_unit, current_stock, stock_alarm, production_date, expiration_date, expiration_alarm from wz_materials_management + + + + + + + + insert into wz_materials_management + + material_id, + material_name, + batch_id, + material_specification, + material_unit, + current_stock, + stock_alarm, + production_date, + expiration_date, + expiration_alarm, + + + #{materialId}, + #{materialName}, + #{batchId}, + #{materialSpecification}, + #{materialUnit}, + #{currentStock}, + #{stockAlarm}, + #{productionDate}, + #{expirationDate}, + #{expirationAlarm}, + + + + + update wz_materials_management + + material_id = #{materialId}, + material_name = #{materialName}, + batch_id = #{batchId}, + material_specification = #{materialSpecification}, + material_unit = #{materialUnit}, + current_stock = #{currentStock}, + stock_alarm = #{stockAlarm}, + production_date = #{productionDate}, + expiration_date = #{expirationDate}, + expiration_alarm = #{expirationAlarm}, + + where material_id = #{materialId} + + + + delete from wz_materials_management where material_management_code = #{materialManagementCode} + + + + delete from wz_materials_management where material_management_code in + + #{materialManagementCode} + + + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/stock/WzStockInMapper.xml b/zhyc-module/src/main/resources/mapper/stock/WzStockInMapper.xml new file mode 100644 index 0000000..55c5c1e --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/stock/WzStockInMapper.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select stock_in_code, doc_date, create_date, doc_id, business_type, repository_id, repository_name, stock_in_type, supplier_id, supplier_name, department_id, department_name, operator_id, operator_name, remark, single, reviewer, material_id, material_name, material_specification, material_unit, count, stock_in_adjust_remark from wz_stock_in + + + + + + + + insert into wz_stock_in + + doc_date, + create_date, + doc_id, + business_type, + repository_id, + repository_name, + stock_in_type, + supplier_id, + supplier_name, + department_id, + department_name, + operator_id, + operator_name, + remark, + single, + reviewer, + material_id, + material_name, + material_specification, + material_unit, + count, + stock_in_adjust_remark, + + + #{docDate}, + #{createDate}, + #{docId}, + #{businessType}, + #{repositoryId}, + #{repositoryName}, + #{stockInType}, + #{supplierId}, + #{supplierName}, + #{departmentId}, + #{departmentName}, + #{operatorId}, + #{operatorName}, + #{remark}, + #{single}, + #{reviewer}, + #{materialId}, + #{materialName}, + #{materialSpecification}, + #{materialUnit}, + #{count}, + #{stockInAdjustRemark}, + + + + + update wz_stock_in + + doc_date = #{docDate}, + create_date = #{createDate}, + doc_id = #{docId}, + business_type = #{businessType}, + repository_id = #{repositoryId}, + repository_name = #{repositoryName}, + stock_in_type = #{stockInType}, + supplier_id = #{supplierId}, + supplier_name = #{supplierName}, + department_id = #{departmentId}, + department_name = #{departmentName}, + operator_id = #{operatorId}, + operator_name = #{operatorName}, + remark = #{remark}, + single = #{single}, + reviewer = #{reviewer}, + material_id = #{materialId}, + material_name = #{materialName}, + material_specification = #{materialSpecification}, + material_unit = #{materialUnit}, + count = #{count}, + stock_in_adjust_remark = #{stockInAdjustRemark}, + + where stock_in_code = #{stockInCode} + + + + delete from wz_stock_in where stock_in_code = #{stockInCode} + + + + delete from wz_stock_in where stock_in_code in + + #{stockInCode} + + + + + \ No newline at end of file diff --git a/zhyc-module/src/main/resources/mapper/stock/WzStockOutMapper.xml b/zhyc-module/src/main/resources/mapper/stock/WzStockOutMapper.xml new file mode 100644 index 0000000..5df3b87 --- /dev/null +++ b/zhyc-module/src/main/resources/mapper/stock/WzStockOutMapper.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select stock_out_code, doc_date, create_date, doc_id, business_type, repository_id, repository_name, project_classification, project_id, project_name, department_id, department_name,receiver_id, receiver, single, reviewer, review_date, modifier, material_class_id, material_class_name, material_id,material_name, material_specification, material_unit, count, batch_id, production_date, shelf_life, shelf_life_unit, expiration_date, agent from wz_stock_out + + + + + + + + insert into wz_stock_out + + doc_date, + create_date, + doc_id, + business_type, + repository_id, + repository_name, + project_classification, + project_id, + project_name, + department_id, + department_name, + receiver_id, + receiver, + single, + reviewer, + review_date, + modifier, + material_class_id, + material_class_name, + material_id, + material_name, + material_specification, + material_unit, + count, + batch_id, + production_date, + shelf_life, + shelf_life_unit, + expiration_date, + agent, + + + #{docDate}, + #{createDate}, + #{docId}, + #{businessType}, + #{repositoryId}, + #{repositoryName}, + #{projectClassification}, + #{projectId}, + #{projectName}, + #{departmentId}, + #{departmentName}, + #{receiverId}, + #{receiver}, + #{single}, + #{reviewer}, + #{reviewDate}, + #{modifier}, + #{materialClassId}, + #{materialClassName}, + #{materialId}, + #{materialName}, + #{materialSpecification}, + #{materialUnit}, + #{count}, + #{batchId}, + #{productionDate}, + #{shelfLife}, + #{shelfLifeUnit}, + #{expirationDate}, + #{agent}, + + + + + update wz_stock_out + + doc_date = #{docDate}, + create_date = #{createDate}, + doc_id = #{docId}, + business_type = #{businessType}, + repository_id = #{repositoryId}, + repository_name = #{repositoryName}, + project_classification = #{projectClassification}, + project_id = #{projectId}, + project_name = #{projectName}, + department_id = #{departmentId}, + department_name = #{departmentName}, + receiver_id = #{receiverId}, + receiver = #{receiver}, + single = #{single}, + reviewer = #{reviewer}, + review_date = #{reviewDate}, + modifier = #{modifier}, + material_class_id = #{materialClassId}, + material_class_name = #{materialClassName}, + material_id = #{materialId}, + material_name = #{materialName}, + material_specification = #{materialSpecification}, + material_unit = #{materialUnit}, + count = #{count}, + batch_id = #{batchId}, + production_date = #{productionDate}, + shelf_life = #{shelfLife}, + shelf_life_unit = #{shelfLifeUnit}, + expiration_date = #{expirationDate}, + agent = #{agent}, + + where stock_out_code = #{stockOutCode} + + + + delete from wz_stock_out where stock_out_code = #{stockOutCode} + + + + delete from wz_stock_out where stock_out_code in + + #{stockOutCode} + + + + + \ No newline at end of file