diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportOrderEnergyDTO.java b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportOrderEnergyDTO.java
index f808bfec3..e89123113 100644
--- a/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportOrderEnergyDTO.java
+++ b/op-modules/op-energy/src/main/java/com/op/energy/report/domain/ReportOrderEnergyDTO.java
@@ -11,7 +11,7 @@ import java.util.Date;
public class ReportOrderEnergyDTO extends BaseEntity {
private String workorderId;
- @Excel(name = "订单号")
+ @Excel(name = "工单号")
private String workorderCode;
@Excel(name = "产线编码")
private String workorderName;
@@ -19,8 +19,14 @@ public class ReportOrderEnergyDTO extends BaseEntity {
private String equipmentName;
@Excel(name = "产品编码")
private String productCode;
+ @Excel(name = "品类")
+ private String category;
@Excel(name = "产品名称")
private String productName;
+ @Excel(name = "产线组长")
+ private String lineLeader;
+ @Excel(name = "规格")
+ private int umrez;
@Excel(name = "生产数量(箱)")
private int totalQuantityFeedback;
@Excel(name = "电表编号")
@@ -66,6 +72,40 @@ public class ReportOrderEnergyDTO extends BaseEntity {
}
@Excel(name = "能耗(KW·h)")
private BigDecimal kw;
+ @Excel(name = "单箱电耗(电量/产能)")
+ private BigDecimal singleKw;
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public String getLineLeader() {
+ return lineLeader;
+ }
+
+ public void setLineLeader(String lineLeader) {
+ this.lineLeader = lineLeader;
+ }
+
+ public int getUmrez() {
+ return umrez;
+ }
+
+ public void setUmrez(int umrez) {
+ this.umrez = umrez;
+ }
+
+ public BigDecimal getSingleKw() {
+ return singleKw;
+ }
+
+ public void setSingleKw(BigDecimal singleKw) {
+ this.singleKw = singleKw;
+ }
public BigDecimal getKw() {
return kw;
diff --git a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java
index 0321117c3..d0a40e1b6 100644
--- a/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java
+++ b/op-modules/op-energy/src/main/java/com/op/energy/report/service/impl/DataAnalysisServiceImpl.java
@@ -1037,6 +1037,9 @@ public class DataAnalysisServiceImpl implements IDataAnalysisService {
reportOrderEnergyDTOList.get(i).setEndKW(recordDnbInstantList.get(1).getZxyg());
reportOrderEnergyDTOList.get(i).setMultiplier(recordDnbInstantList.get(0).getCt());
reportOrderEnergyDTOList.get(i).setKw(kw);
+ BigDecimal totalQuantityFeedbackBD = new BigDecimal(reportOrderEnergyDTOList.get(i).getTotalQuantityFeedback());
+ reportOrderEnergyDTOList.get(i).setSingleKw(kw.divide(totalQuantityFeedbackBD, BigDecimal.ROUND_HALF_UP));
+
}
}
}
diff --git a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml
index 04d8d248f..937d6ca0d 100644
--- a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml
+++ b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml
@@ -55,6 +55,9 @@
+
+
+
@@ -261,29 +264,26 @@
order by m.parentName, m.monitor_name
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/H5ApiController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/H5ApiController.java
index d636154c0..c63f42945 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/controller/H5ApiController.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/H5ApiController.java
@@ -32,5 +32,4 @@ public class H5ApiController {
List
list = h5ApiService.dailyProductDetil(workTime);
return list;
}
-
}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoxController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoxController.java
new file mode 100644
index 000000000..6a17bb585
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoxController.java
@@ -0,0 +1,110 @@
+package com.op.mes.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.op.system.api.domain.SysDictType;
+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.op.common.log.annotation.Log;
+import com.op.common.log.enums.BusinessType;
+import com.op.common.security.annotation.RequiresPermissions;
+import com.op.mes.domain.MesBox;
+import com.op.mes.service.IMesBoxService;
+import com.op.common.core.web.controller.BaseController;
+import com.op.common.core.web.domain.AjaxResult;
+import com.op.common.core.utils.poi.ExcelUtil;
+import com.op.common.core.web.page.TableDataInfo;
+
+/**
+ * 箱体类型Controller
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+@RestController
+@RequestMapping("/mesBox")
+public class MesBoxController extends BaseController {
+ @Autowired
+ private IMesBoxService mesBoxService;
+
+/**
+ * 查询箱体类型列表
+ */
+@RequiresPermissions("mes:mesBox:list")
+@GetMapping("/list")
+ public TableDataInfo list(MesBox mesBox) {
+ startPage();
+ List list = mesBoxService.selectMesBoxList(mesBox);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出箱体类型列表
+ */
+ @RequiresPermissions("mes:mesBox:export")
+ @Log(title = "箱体类型", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, MesBox mesBox) {
+ List list = mesBoxService.selectMesBoxList(mesBox);
+ ExcelUtil util = new ExcelUtil(MesBox. class);
+ util.exportExcel(response, list, "箱体类型数据");
+ }
+
+ /**
+ * 获取箱体类型详细信息
+ */
+ @RequiresPermissions("mes:mesBox:query")
+ @GetMapping(value = "/{boxId}")
+ public AjaxResult getInfo(@PathVariable("boxId") Long boxId) {
+ return success(mesBoxService.selectMesBoxByBoxId(boxId));
+ }
+
+ /**
+ * 新增箱体类型
+ */
+ @RequiresPermissions("mes:mesBox:add")
+ @Log(title = "箱体类型", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody MesBox mesBox) {
+ return toAjax(mesBoxService.insertMesBox(mesBox));
+ }
+
+ /**
+ * 修改箱体类型
+ */
+ @RequiresPermissions("mes:mesBox:edit")
+ @Log(title = "箱体类型", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody MesBox mesBox) {
+ return toAjax(mesBoxService.updateMesBox(mesBox));
+ }
+
+ /**
+ * 删除箱体类型
+ */
+ @RequiresPermissions("mes:mesBox:remove")
+ @Log(title = "箱体类型", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{boxIds}")
+ public AjaxResult remove(@PathVariable Long[] boxIds) {
+ return toAjax(mesBoxService.deleteMesBoxByBoxIds(boxIds));
+ }
+
+ /**
+ * 获取字典选择框列表
+ */
+ @GetMapping("/optionSelect")
+ @DS("#header.poolName")
+ public AjaxResult optionSelect() {
+ List boxTypes = mesBoxService.selectDictTypeAll();
+ return success(boxTypes);
+ }
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoxDetailController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoxDetailController.java
new file mode 100644
index 000000000..8e5324777
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoxDetailController.java
@@ -0,0 +1,115 @@
+package com.op.mes.controller;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.op.common.core.utils.StringUtils;
+import com.op.system.api.domain.SysDictData;
+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.op.common.log.annotation.Log;
+import com.op.common.log.enums.BusinessType;
+import com.op.common.security.annotation.RequiresPermissions;
+import com.op.mes.domain.MesBoxDetail;
+import com.op.mes.service.IMesBoxDetailService;
+import com.op.common.core.web.controller.BaseController;
+import com.op.common.core.web.domain.AjaxResult;
+import com.op.common.core.utils.poi.ExcelUtil;
+import com.op.common.core.web.page.TableDataInfo;
+
+/**
+ * 箱体数据Controller
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+@RestController
+@RequestMapping("/mesBoxDetail")
+public class MesBoxDetailController extends BaseController {
+ @Autowired
+ private IMesBoxDetailService mesBoxDetailService;
+
+/**
+ * 查询箱体数据列表
+ */
+@RequiresPermissions("mes:mesBoxDetail:list")
+@GetMapping("/list")
+ public TableDataInfo list(MesBoxDetail mesBoxDetail) {
+ startPage();
+ List list = mesBoxDetailService.selectMesBoxDetailList(mesBoxDetail);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出箱体数据列表
+ */
+ @RequiresPermissions("mes:mesBoxDetail:export")
+ @Log(title = "箱体数据", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, MesBoxDetail mesBoxDetail) {
+ List list = mesBoxDetailService.selectMesBoxDetailList(mesBoxDetail);
+ ExcelUtil util = new ExcelUtil(MesBoxDetail. class);
+ util.exportExcel(response, list, "箱体数据数据");
+ }
+
+ /**
+ * 获取箱体数据详细信息
+ */
+ @RequiresPermissions("mes:mesBoxDetail:query")
+ @GetMapping(value = "/{boxCode}")
+ public AjaxResult getInfo(@PathVariable("boxCode") Long boxCode) {
+ return success(mesBoxDetailService.selectMesBoxDetailByBoxCode(boxCode));
+ }
+
+ /**
+ * 根据箱体类型查询箱体数据信息
+ */
+ @GetMapping(value = "/type/{boxType}")
+ @DS("#header.poolName")
+ public AjaxResult dictType(@PathVariable String boxType) {
+ List data = mesBoxDetailService.selectBoxDataByType(boxType);
+ if (StringUtils.isNull(data)) {
+ data = new ArrayList();
+ }
+ return success(data);
+ }
+
+ /**
+ * 新增箱体数据
+ */
+ @RequiresPermissions("mes:mesBoxDetail:add")
+ @Log(title = "箱体数据", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody MesBoxDetail mesBoxDetail) {
+ return toAjax(mesBoxDetailService.insertMesBoxDetail(mesBoxDetail));
+ }
+
+ /**
+ * 修改箱体数据
+ */
+ @RequiresPermissions("mes:mesBoxDetail:edit")
+ @Log(title = "箱体数据", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody MesBoxDetail mesBoxDetail) {
+ return toAjax(mesBoxDetailService.updateMesBoxDetail(mesBoxDetail));
+ }
+
+ /**
+ * 删除箱体数据
+ */
+ @RequiresPermissions("mes:mesBoxDetail:remove")
+ @Log(title = "箱体数据", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{boxCodes}")
+ public AjaxResult remove(@PathVariable Long[] boxCodes) {
+ return toAjax(mesBoxDetailService.deleteMesBoxDetailByBoxCodes(boxCodes));
+ }
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java
index ca066f064..3c900f71a 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/H5.java
@@ -6,8 +6,8 @@ public class H5 {
private String productName;
private String category;
private String specifications;
- private String StandardStaffing;
- private String actualEmployment;
+ private int StandardStaffing;
+ private int actualEmployment;
private String productionDuration;
private int planProduction;
private int production;
@@ -83,19 +83,19 @@ public class H5 {
this.specifications = specifications;
}
- public String getStandardStaffing() {
+ public int getStandardStaffing() {
return StandardStaffing;
}
- public void setStandardStaffing(String standardStaffing) {
+ public void setStandardStaffing(int standardStaffing) {
StandardStaffing = standardStaffing;
}
- public String getActualEmployment() {
+ public int getActualEmployment() {
return actualEmployment;
}
- public void setActualEmployment(String actualEmployment) {
+ public void setActualEmployment(int actualEmployment) {
this.actualEmployment = actualEmployment;
}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBox.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBox.java
new file mode 100644
index 000000000..5fa0f862e
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBox.java
@@ -0,0 +1,75 @@
+package com.op.mes.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.op.common.core.annotation.Excel;
+import com.op.common.core.web.domain.BaseEntity;
+
+/**
+ * 箱体类型对象 mes_box
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+public class MesBox extends BaseEntity {
+private static final long serialVersionUID=1L;
+
+ /** 字典主键 */
+ private Long boxId;
+
+ /** 字典名称 */
+ @Excel(name = "字典名称")
+ private String boxName;
+
+ /** 字典类型 */
+ @Excel(name = "字典类型")
+ private String boxType;
+
+ /** 状态(0正常 */
+ @Excel(name = "状态", readConverterExp = "状态(0正常")
+ private String status;
+
+ public void setBoxId(Long boxId){
+ this.boxId = boxId;
+ }
+
+ public Long getBoxId(){
+ return boxId;
+ }
+ public void setBoxName(String boxName){
+ this.boxName = boxName;
+ }
+
+ public String getBoxName(){
+ return boxName;
+ }
+ public void setBoxType(String boxType){
+ this.boxType = boxType;
+ }
+
+ public String getBoxType(){
+ return boxType;
+ }
+ public void setStatus(String status){
+ this.status = status;
+ }
+
+ public String getStatus(){
+ return status;
+ }
+
+@Override
+public String toString(){
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("boxId",getBoxId())
+ .append("boxName",getBoxName())
+ .append("boxType",getBoxType())
+ .append("status",getStatus())
+ .append("createBy",getCreateBy())
+ .append("createTime",getCreateTime())
+ .append("updateBy",getUpdateBy())
+ .append("updateTime",getUpdateTime())
+ .append("remark",getRemark())
+ .toString();
+ }
+ }
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoxDetail.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoxDetail.java
new file mode 100644
index 000000000..06f2040c9
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoxDetail.java
@@ -0,0 +1,176 @@
+package com.op.mes.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.op.common.core.annotation.Excel;
+import com.op.common.core.web.domain.BaseEntity;
+
+/**
+ * 字典数据对象 mes_box_detail
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+public class MesBoxDetail extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 箱型编码
+ */
+ private Long boxCode;
+
+ /**
+ * 箱型排序
+ */
+ @Excel(name = "箱型排序")
+ private Long boxSort;
+
+ /**
+ * 箱型标签
+ */
+ @Excel(name = "箱型标签")
+ private String boxLabel;
+
+ /**
+ * 箱型关键字
+ */
+ @Excel(name = "箱型关键字")
+ private String boxKey;
+
+ /**
+ * 箱型值
+ */
+ @Excel(name = "箱型值")
+ private String boxValue;
+
+ /**
+ * 箱型类型
+ */
+ @Excel(name = "箱型类型")
+ private String boxType;
+
+ /**
+ * 样式属性(其他样式扩展)
+ */
+ @Excel(name = "样式属性", readConverterExp = "其=他样式扩展")
+ private String cssClass;
+
+ /**
+ * 表格回显样式
+ */
+ @Excel(name = "表格回显样式")
+ private String listClass;
+
+ /**
+ * 是否默认(Y是
+ */
+ @Excel(name = "是否默认", readConverterExp = "是否默认(Y是")
+ private String isDefault;
+
+ /**
+ * 状态(0正常
+ */
+ @Excel(name = "状态", readConverterExp = "状态(0正常")
+ private String status;
+
+ public void setBoxCode(Long boxCode) {
+ this.boxCode = boxCode;
+ }
+
+ public Long getBoxCode() {
+ return boxCode;
+ }
+
+ public void setBoxSort(Long boxSort) {
+ this.boxSort = boxSort;
+ }
+
+ public Long getBoxSort() {
+ return boxSort;
+ }
+
+ public void setBoxLabel(String boxLabel) {
+ this.boxLabel = boxLabel;
+ }
+
+ public String getBoxLabel() {
+ return boxLabel;
+ }
+
+
+ public String getBoxKey() {
+ return boxKey;
+ }
+
+ public void setBoxKey(String boxKey) {
+ this.boxKey = boxKey;
+ }
+
+ public void setBoxValue(String boxValue) {
+ this.boxValue = boxValue;
+ }
+
+ public String getBoxValue() {
+ return boxValue;
+ }
+
+ public void setBoxType(String boxType) {
+ this.boxType = boxType;
+ }
+
+ public String getBoxType() {
+ return boxType;
+ }
+
+ public void setCssClass(String cssClass) {
+ this.cssClass = cssClass;
+ }
+
+ public String getCssClass() {
+ return cssClass;
+ }
+
+ public void setListClass(String listClass) {
+ this.listClass = listClass;
+ }
+
+ public String getListClass() {
+ return listClass;
+ }
+
+ public void setIsDefault(String isDefault) {
+ this.isDefault = isDefault;
+ }
+
+ public String getIsDefault() {
+ return isDefault;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+ .append("boxCode", getBoxCode())
+ .append("boxSort", getBoxSort())
+ .append("boxLabel", getBoxLabel())
+ .append("boxValue", getBoxValue())
+ .append("boxType", getBoxType())
+ .append("cssClass", getCssClass())
+ .append("listClass", getListClass())
+ .append("isDefault", getIsDefault())
+ .append("status", getStatus())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesBoxDetailMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesBoxDetailMapper.java
new file mode 100644
index 000000000..410f2d3c6
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesBoxDetailMapper.java
@@ -0,0 +1,61 @@
+package com.op.mes.mapper;
+
+import java.util.List;
+
+import com.op.mes.domain.MesBoxDetail;
+
+/**
+ * 字典数据Mapper接口
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+public interface MesBoxDetailMapper {
+ /**
+ * 查询字典数据
+ *
+ * @param boxCode 字典数据主键
+ * @return 字典数据
+ */
+ public MesBoxDetail selectMesBoxDetailByBoxCode(Long boxCode);
+
+ /**
+ * 查询字典数据列表
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 字典数据集合
+ */
+ public List selectMesBoxDetailList(MesBoxDetail mesBoxDetail);
+
+ /**
+ * 新增字典数据
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 结果
+ */
+ public int insertMesBoxDetail(MesBoxDetail mesBoxDetail);
+
+ /**
+ * 修改字典数据
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 结果
+ */
+ public int updateMesBoxDetail(MesBoxDetail mesBoxDetail);
+
+ /**
+ * 删除字典数据
+ *
+ * @param boxCode 字典数据主键
+ * @return 结果
+ */
+ public int deleteMesBoxDetailByBoxCode(Long boxCode);
+
+ /**
+ * 批量删除字典数据
+ *
+ * @param boxCodes 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteMesBoxDetailByBoxCodes(Long[] boxCodes);
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesBoxMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesBoxMapper.java
new file mode 100644
index 000000000..46042a6eb
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesBoxMapper.java
@@ -0,0 +1,63 @@
+package com.op.mes.mapper;
+
+import java.util.List;
+
+import com.op.mes.domain.MesBox;
+
+/**
+ * 箱体类型Mapper接口
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+public interface MesBoxMapper {
+ /**
+ * 查询箱体类型
+ *
+ * @param boxId 箱体类型主键
+ * @return 箱体类型
+ */
+ public MesBox selectMesBoxByBoxId(Long boxId);
+
+ /**
+ * 查询箱体类型列表
+ *
+ * @param mesBox 箱体类型
+ * @return 箱体类型集合
+ */
+ public List selectMesBoxList(MesBox mesBox);
+
+ /**
+ * 新增箱体类型
+ *
+ * @param mesBox 箱体类型
+ * @return 结果
+ */
+ public int insertMesBox(MesBox mesBox);
+
+ /**
+ * 修改箱体类型
+ *
+ * @param mesBox 箱体类型
+ * @return 结果
+ */
+ public int updateMesBox(MesBox mesBox);
+
+ /**
+ * 删除箱体类型
+ *
+ * @param boxId 箱体类型主键
+ * @return 结果
+ */
+ public int deleteMesBoxByBoxId(Long boxId);
+
+ /**
+ * 批量删除箱体类型
+ *
+ * @param boxIds 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteMesBoxByBoxIds(Long[] boxIds);
+
+ List selectDictTypeAll();
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoxDetailService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoxDetailService.java
new file mode 100644
index 000000000..b1ec26876
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoxDetailService.java
@@ -0,0 +1,64 @@
+package com.op.mes.service;
+
+import java.util.List;
+
+import com.op.mes.domain.MesBoxDetail;
+import com.op.system.api.domain.SysDictData;
+
+/**
+ * 字典数据Service接口
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+public interface IMesBoxDetailService {
+ /**
+ * 查询字典数据
+ *
+ * @param boxCode 字典数据主键
+ * @return 字典数据
+ */
+ public MesBoxDetail selectMesBoxDetailByBoxCode(Long boxCode);
+
+ /**
+ * 查询字典数据列表
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 字典数据集合
+ */
+ public List selectMesBoxDetailList(MesBoxDetail mesBoxDetail);
+
+ /**
+ * 新增字典数据
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 结果
+ */
+ public int insertMesBoxDetail(MesBoxDetail mesBoxDetail);
+
+ /**
+ * 修改字典数据
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 结果
+ */
+ public int updateMesBoxDetail(MesBoxDetail mesBoxDetail);
+
+ /**
+ * 批量删除字典数据
+ *
+ * @param boxCodes 需要删除的字典数据主键集合
+ * @return 结果
+ */
+ public int deleteMesBoxDetailByBoxCodes(Long[] boxCodes);
+
+ /**
+ * 删除字典数据信息
+ *
+ * @param boxCode 字典数据主键
+ * @return 结果
+ */
+ public int deleteMesBoxDetailByBoxCode(Long boxCode);
+
+ List selectBoxDataByType(String boxType);
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoxService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoxService.java
new file mode 100644
index 000000000..7425c2f99
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoxService.java
@@ -0,0 +1,63 @@
+package com.op.mes.service;
+
+import java.util.List;
+
+import com.op.mes.domain.MesBox;
+
+/**
+ * 箱体类型Service接口
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+public interface IMesBoxService {
+ /**
+ * 查询箱体类型
+ *
+ * @param boxId 箱体类型主键
+ * @return 箱体类型
+ */
+ public MesBox selectMesBoxByBoxId(Long boxId);
+
+ /**
+ * 查询箱体类型列表
+ *
+ * @param mesBox 箱体类型
+ * @return 箱体类型集合
+ */
+ public List selectMesBoxList(MesBox mesBox);
+
+ /**
+ * 新增箱体类型
+ *
+ * @param mesBox 箱体类型
+ * @return 结果
+ */
+ public int insertMesBox(MesBox mesBox);
+
+ /**
+ * 修改箱体类型
+ *
+ * @param mesBox 箱体类型
+ * @return 结果
+ */
+ public int updateMesBox(MesBox mesBox);
+
+ /**
+ * 批量删除箱体类型
+ *
+ * @param boxIds 需要删除的箱体类型主键集合
+ * @return 结果
+ */
+ public int deleteMesBoxByBoxIds(Long[] boxIds);
+
+ /**
+ * 删除箱体类型信息
+ *
+ * @param boxId 箱体类型主键
+ * @return 结果
+ */
+ public int deleteMesBoxByBoxId(Long boxId);
+
+ List selectDictTypeAll();
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoxDetailServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoxDetailServiceImpl.java
new file mode 100644
index 000000000..04675f787
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoxDetailServiceImpl.java
@@ -0,0 +1,106 @@
+package com.op.mes.service.impl;
+
+import java.util.List;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.op.common.core.utils.DateUtils;
+import com.op.common.security.utils.SecurityUtils;
+import com.op.system.api.domain.SysDictData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.op.mes.mapper.MesBoxDetailMapper;
+import com.op.mes.domain.MesBoxDetail;
+import com.op.mes.service.IMesBoxDetailService;
+
+/**
+ * 字典数据Service业务层处理
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+@Service
+public class MesBoxDetailServiceImpl implements IMesBoxDetailService {
+ @Autowired
+ private MesBoxDetailMapper mesBoxDetailMapper;
+
+ /**
+ * 查询字典数据
+ *
+ * @param boxCode 字典数据主键
+ * @return 字典数据
+ */
+ @Override
+ @DS("#header.poolName")
+ public MesBoxDetail selectMesBoxDetailByBoxCode(Long boxCode) {
+ return mesBoxDetailMapper.selectMesBoxDetailByBoxCode(boxCode);
+ }
+
+ /**
+ * 查询字典数据列表
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 字典数据
+ */
+ @Override
+ @DS("#header.poolName")
+ public List selectMesBoxDetailList(MesBoxDetail mesBoxDetail) {
+ return mesBoxDetailMapper.selectMesBoxDetailList(mesBoxDetail);
+ }
+
+ /**
+ * 新增字典数据
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int insertMesBoxDetail(MesBoxDetail mesBoxDetail) {
+ mesBoxDetail.setCreateBy(SecurityUtils.getUsername());
+ mesBoxDetail.setCreateTime(DateUtils.getNowDate());
+ return mesBoxDetailMapper.insertMesBoxDetail(mesBoxDetail);
+ }
+
+ /**
+ * 修改字典数据
+ *
+ * @param mesBoxDetail 字典数据
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int updateMesBoxDetail(MesBoxDetail mesBoxDetail) {
+ mesBoxDetail.setUpdateBy(SecurityUtils.getUsername());
+ mesBoxDetail.setUpdateTime(DateUtils.getNowDate());
+ return mesBoxDetailMapper.updateMesBoxDetail(mesBoxDetail);
+ }
+
+ /**
+ * 批量删除字典数据
+ *
+ * @param boxCodes 需要删除的字典数据主键
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int deleteMesBoxDetailByBoxCodes(Long[] boxCodes) {
+ return mesBoxDetailMapper.deleteMesBoxDetailByBoxCodes(boxCodes);
+ }
+
+ /**
+ * 删除字典数据信息
+ *
+ * @param boxCode 字典数据主键
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int deleteMesBoxDetailByBoxCode(Long boxCode) {
+ return mesBoxDetailMapper.deleteMesBoxDetailByBoxCode(boxCode);
+ }
+
+ @Override
+ public List selectBoxDataByType(String boxType) {
+ return null;
+ }
+}
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoxServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoxServiceImpl.java
new file mode 100644
index 000000000..3f1a05e2c
--- /dev/null
+++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoxServiceImpl.java
@@ -0,0 +1,106 @@
+package com.op.mes.service.impl;
+
+import java.util.List;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.op.common.core.utils.DateUtils;
+import com.op.common.security.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.op.mes.mapper.MesBoxMapper;
+import com.op.mes.domain.MesBox;
+import com.op.mes.service.IMesBoxService;
+
+/**
+ * 箱体类型Service业务层处理
+ *
+ * @author Open Platform
+ * @date 2024-08-20
+ */
+@Service
+public class MesBoxServiceImpl implements IMesBoxService {
+ @Autowired
+ private MesBoxMapper mesBoxMapper;
+
+ /**
+ * 查询箱体类型
+ *
+ * @param boxId 箱体类型主键
+ * @return 箱体类型
+ */
+ @Override
+ @DS("#header.poolName")
+ public MesBox selectMesBoxByBoxId(Long boxId) {
+ return mesBoxMapper.selectMesBoxByBoxId(boxId);
+ }
+
+ /**
+ * 查询箱体类型列表
+ *
+ * @param mesBox 箱体类型
+ * @return 箱体类型
+ */
+ @Override
+ @DS("#header.poolName")
+ public List selectMesBoxList(MesBox mesBox) {
+ return mesBoxMapper.selectMesBoxList(mesBox);
+ }
+
+ /**
+ * 新增箱体类型
+ *
+ * @param mesBox 箱体类型
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int insertMesBox(MesBox mesBox) {
+ mesBox.setUpdateBy(SecurityUtils.getUsername());
+ mesBox.setCreateTime(DateUtils.getNowDate());
+ return mesBoxMapper.insertMesBox(mesBox);
+ }
+
+ /**
+ * 修改箱体类型
+ *
+ * @param mesBox 箱体类型
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int updateMesBox(MesBox mesBox) {
+ mesBox.setUpdateBy(SecurityUtils.getUsername());
+ mesBox.setUpdateTime(DateUtils.getNowDate());
+ return mesBoxMapper.updateMesBox(mesBox);
+ }
+
+ /**
+ * 批量删除箱体类型
+ *
+ * @param boxIds 需要删除的箱体类型主键
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int deleteMesBoxByBoxIds(Long[] boxIds) {
+ return mesBoxMapper.deleteMesBoxByBoxIds(boxIds);
+ }
+
+ /**
+ * 删除箱体类型信息
+ *
+ * @param boxId 箱体类型主键
+ * @return 结果
+ */
+ @Override
+ @DS("#header.poolName")
+ public int deleteMesBoxByBoxId(Long boxId) {
+ return mesBoxMapper.deleteMesBoxByBoxId(boxId);
+ }
+
+ @Override
+ @DS("#header.poolName")
+ public List selectDictTypeAll() {
+ return mesBoxMapper.selectDictTypeAll();
+ }
+}
diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml
index b5e0bb6da..1008e9e8e 100644
--- a/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml
+++ b/op-modules/op-mes/src/main/resources/mapper/mes/H5ApiMapper.xml
@@ -33,14 +33,14 @@
MAX(A.quantity_s_total) AS quantity_s_total,
bpa.man_standar,
MAX(A.use_man) AS use_man,
- SUM(A.work_time) AS work_time,
+ FORMAT(ROUND((MAX(A.work_time)), 1), '0.#') AS work_time,
mrw.parent_order ,
bpa.iei,
FORMAT(ROUND((bpa.iei / bp.umrez / bpa.man_standar), 1), '0.#') AS standardEfficiency,
FORMAT(ROUND(
CASE
WHEN MAX(A.use_man) = 0 OR SUM(A.work_time) = 0 THEN NULL
- ELSE SUM(mrw.quantity_feedback) / MAX(A.use_man) / SUM(A.work_time)
+ ELSE (SUM(mrw.quantity_feedback)) / MAX(A.use_man) / (MAX(A.work_time))
END,
1
), '0.#') AS actualEfficiency,
@@ -52,7 +52,7 @@
ROUND(
CASE
WHEN MAX(A.use_man) = 0 OR SUM(A.work_time) = 0 THEN NULL
- ELSE SUM(mrw.quantity_feedback) / MAX(A.use_man) / SUM(A.work_time)
+ ELSE (SUM(mrw.quantity_feedback)) / MAX(A.use_man) / (MAX(A.work_time))
END,
1
) AS DECIMAL(10,1))
diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesBoxDetailMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesBoxDetailMapper.xml
new file mode 100644
index 000000000..91244db29
--- /dev/null
+++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesBoxDetailMapper.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select box_code, box_sort, box_label, box_key, box_value, box_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark from mes_box_detail
+
+
+
+
+
+
+
+ insert into mes_box_detail
+
+ box_code,
+
+ box_sort,
+
+ box_label,
+
+ box_key,
+
+ box_value,
+
+ box_type,
+
+ css_class,
+
+ list_class,
+
+ is_default,
+
+ status,
+
+ create_by,
+
+ create_time,
+
+ update_by,
+
+ update_time,
+
+ remark,
+
+
+
+ #{boxCode},
+
+ #{boxSort},
+
+ #{boxLabel},
+
+ #{boxKey},
+
+ #{boxValue},
+
+ #{boxType},
+
+ #{cssClass},
+
+ #{listClass},
+
+ #{isDefault},
+
+ #{status},
+
+ #{createBy},
+
+ #{createTime},
+
+ #{updateBy},
+
+ #{updateTime},
+
+ #{remark},
+
+
+
+
+
+ update mes_box_detail
+
+ box_sort =
+ #{boxSort},
+
+ box_label =
+ #{boxLabel},
+
+ box_key =
+ #{boxKey},
+
+ box_value =
+ #{boxValue},
+
+ box_type =
+ #{boxType},
+
+ css_class =
+ #{cssClass},
+
+ list_class =
+ #{listClass},
+
+ is_default =
+ #{isDefault},
+
+ status =
+ #{status},
+
+ create_by =
+ #{createBy},
+
+ create_time =
+ #{createTime},
+
+ update_by =
+ #{updateBy},
+
+ update_time =
+ #{updateTime},
+
+ remark =
+ #{remark},
+
+
+ where box_code = #{boxCode}
+
+
+
+ delete from mes_box_detail where box_code = #{boxCode}
+
+
+
+ delete from mes_box_detail where box_code in
+
+ #{boxCode}
+
+
+
diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesBoxMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesBoxMapper.xml
new file mode 100644
index 000000000..6dc55a129
--- /dev/null
+++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesBoxMapper.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select box_id, box_name, box_type, status, create_by, create_time, update_by, update_time, remark from mes_box
+
+
+
+
+
+
+
+ insert into mes_box
+
+ box_id,
+
+ box_name,
+
+ box_type,
+
+ status,
+
+ create_by,
+
+ create_time,
+
+ update_by,
+
+ update_time,
+
+ remark,
+
+
+
+ #{boxId},
+
+ #{boxName},
+
+ #{boxType},
+
+ #{status},
+
+ #{createBy},
+
+ #{createTime},
+
+ #{updateBy},
+
+ #{updateTime},
+
+ #{remark},
+
+
+
+
+
+ update mes_box
+
+ box_name =
+ #{boxName},
+
+ box_type =
+ #{boxType},
+
+ status =
+ #{status},
+
+ create_by =
+ #{createBy},
+
+ create_time =
+ #{createTime},
+
+ update_by =
+ #{updateBy},
+
+ update_time =
+ #{updateTime},
+
+ remark =
+ #{remark},
+
+
+ where box_id = #{boxId}
+
+
+
+
+
+ delete from mes_box where box_id = #{boxId}
+
+
+
+ delete from mes_box where box_id in
+
+ #{boxId}
+
+
+
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java
index b226c0d40..b97567057 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java
@@ -314,4 +314,10 @@ public class ProOrderWorkorderController extends BaseController {
public List getIdCardList(@RequestBody ProOrderWorkorder proOrderWorkorder) {
return proOrderWorkorderService.getIdCardList(proOrderWorkorder);
}
+
+ //获取批次号
+ @GetMapping("/getBatchCode/{workorderId}")
+ public List getBatchCode(@PathVariable("workorderId") String workorderId) {
+ return proOrderWorkorderService.getBatchCode(workorderId);
+ }
}
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java
index c29121fe9..35f2f893c 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java
@@ -339,6 +339,8 @@ public class ProOrderWorkorder extends TreeEntity {
private String palletCode;
private String recordId;
+ private String addFlag;
+
public String getRecordId() {
return recordId;
}
@@ -787,6 +789,13 @@ public class ProOrderWorkorder extends TreeEntity {
this.sortNo = sortNo;
}
+ public void setAddFlag(String addFlag) {
+ this.addFlag = addFlag;
+ }
+ public String getAddFlag() {
+ return addFlag;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java
index d19835380..c99b5c2d0 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java
@@ -237,5 +237,12 @@ public interface ProOrderWorkorderMapper {
List getPreIdCardList(ProOrderWorkorder proOrderWorkorder);
int addBatchPallet(@Param("list")List dtos);
+
+ Integer selectPalletByUniqueBarCode(ProOrderWorkorder pw);
+
+ //void addOnePallet(ProOrderWorkorder pw);//新增一个标识卡
+ void updateOnePallet(ProOrderWorkorder pw);//更新一个标识卡
+
+ List getBatchCode(String workorderId);//获取批次号下拉框
}
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java
index bc8f05c64..0b6c1d9b2 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java
@@ -151,4 +151,6 @@ public interface IProOrderWorkorderService {
List getProdLineList();
List getIdCardList(ProOrderWorkorder proOrderWorkorder);
+
+ List getBatchCode(String workorderId);//获取批次号
}
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java
index 41f1b24fd..0eed90e75 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java
@@ -1259,13 +1259,18 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
return proOrderWorkorderBatchMapper.getProdLineList();
}
+ @Override
+ @DS("#header.poolName")
+ public List getBatchCode(String workorderId) {
+ return proOrderWorkorderMapper.getBatchCode(workorderId);
+ }
+
@Override
@DS("#header.poolName")
public List getIdCardList(ProOrderWorkorder proOrderWorkorder) {
List dtos = new ArrayList<>();
List dtos0 = proOrderWorkorderMapper.getPreIdCardList(proOrderWorkorder);
-
- if(!CollectionUtils.isEmpty(dtos0) && dtos0.get(0).getPalletNo() == null){//说明没生成过标识卡
+ if(!CollectionUtils.isEmpty(dtos0) && dtos0.get(0).getPalletNo() == null && proOrderWorkorder.getAddFlag().equals("0")){//说明没生成过标识卡 增打标志0
ProOrderWorkorder pw = null;
int i = 1;
Date nowDate = DateUtils.getNowDate();
@@ -1275,42 +1280,72 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
BigDecimal pall = pow.getBatchQuantity();
BigDecimal pn = pow.getPalletNum();
- while(pall.subtract(pn).compareTo(BigDecimal.ZERO)>0){
+ while(pall.compareTo(BigDecimal.ZERO)>0){
pw = new ProOrderWorkorder();
pw.setProductName(pow.getProductName());
pw.setWorkorderCode(pow.getWorkorderCode());
pw.setBatchCode(pow.getBatchCode());
pw.setProductDateStr(pow.getProductDateStr());
pw.setRecordId(IdUtils.fastSimpleUUID());
- pw.setBatchQuantity(pn);
+ if(pall.compareTo(pn)<0) {//最后一托盘
+ pw.setBatchQuantity(pall);
+ }else{
+ pw.setBatchQuantity(pn);
+ }
pw.setPalletNo(i++);
- pw.setPalletCode(pow.getPalletCode()+"-"+pw.getPalletNo());
+ pw.setPalletCode(pow.getWorkorderCode() + "-" + pow.getBatchCode() + "-" + pw.getPalletNo());//workorderCode 实际上是订单号
pw.setCreateTime(nowDate);
+ pw.setCreateBy(SecurityUtils.getUsername());
+ pw.setAddFlag("0");//增打标志
dtos.add(pw);
pall = pall.subtract(pn);
}
- if(pall.compareTo(pn)<0){//最后一托盘
- pw = new ProOrderWorkorder();
- pw.setProductName(pow.getProductName());
- pw.setWorkorderCode(pow.getWorkorderCode());
- pw.setBatchCode(pow.getBatchCode());
- pw.setProductDateStr(pow.getProductDateStr());
- pw.setRecordId(IdUtils.fastSimpleUUID());
- pw.setBatchQuantity(pall);
- pw.setPalletNo(i++);
- pw.setPalletCode(pow.getPalletCode()+"-"+pw.getPalletNo());
- pw.setCreateTime(nowDate);
- dtos.add(pw);
- }
}
}
if(!CollectionUtils.isEmpty(dtos)){
proOrderWorkorderMapper.addBatchPallet(dtos);
}
- }else{
+ }else if(proOrderWorkorder.getAddFlag().equals("1")){
+ //增打 增打过来的会有批次号、批次数量、板次 增打标志1 根据唯一二维码去判断是不是生成过标识卡 有增打标志
+ Integer palletNo = proOrderWorkorder.getPalletNo();//板次
+ proOrderWorkorder.setPalletNo(null);//板次置空 去查询 获取产品等信息
+ List dtos1 = proOrderWorkorderMapper.getPreIdCardList(proOrderWorkorder);
+ ProOrderWorkorder pow = dtos1.get(0);
+ proOrderWorkorder.setPalletNo(palletNo);
+ String uniqueBarCode = pow.getWorkorderCode() + "-" + proOrderWorkorder.getBatchCode() + "-" + palletNo;//订单号+批次+板次 唯一二维码标识
+ ProOrderWorkorder pw = new ProOrderWorkorder();
+ pw.setProductName(pow.getProductName());//产品名
+ pw.setWorkorderCode(pow.getWorkorderCode());//工单号 实际是订单号
+ pw.setBatchCode(proOrderWorkorder.getBatchCode());//批次号
+ pw.setProductDateStr(pow.getProductDateStr());//生产日期
+ pw.setRecordId(IdUtils.fastSimpleUUID());//记录
+ pw.setBatchQuantity(proOrderWorkorder.getBatchQuantity());//批次数量
+ pw.setPalletNo(palletNo);//板次
+ pw.setPalletCode(uniqueBarCode);//唯一二维码
+ pw.setUpdateTime(DateUtils.getNowDate());
+ pw.setUpdateBy(SecurityUtils.getUsername());
+ pw.setCreateTime(DateUtils.getNowDate());
+ pw.setCreateBy(SecurityUtils.getUsername());
+
+ pw.setAddFlag("0");
+ Integer supplementMsg = proOrderWorkorderMapper.selectPalletByUniqueBarCode(pw);//补打标志
+ pw.setAddFlag("1");
+ Integer addMsg = proOrderWorkorderMapper.selectPalletByUniqueBarCode(pw);//增打标志
+
+ List dto = new ArrayList<>();
+ if(supplementMsg == 0 && addMsg == 0){//没有正常生成、补打过 没有增打过
+ dto.add(pw);
+ proOrderWorkorderMapper.addBatchPallet(dto);
+ }else if(supplementMsg == 0 && addMsg >= 1){//没有正常生成过、补打过 增打过
+ proOrderWorkorderMapper.updateOnePallet(pw);
+ }else if(supplementMsg >= 1){//补打过、正常打过 没有增打过
+ return dto;
+ }
+ dtos.add(pw);
+
+ }else if(!CollectionUtils.isEmpty(dtos0) && dtos0.get(0).getPalletNo() != null && proOrderWorkorder.getAddFlag().equals("0")){
dtos.addAll(dtos0);
}
-
return dtos;
}
diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
index 64ab22090..ef9f462d5 100644
--- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
+++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
@@ -688,7 +688,7 @@
case when powbp.quantity is not null then powbp.quantity
else powb.batch_quantity end batchQuantity,
bpa.pallet_num palletNum,
- concat(pow.workorder_code_sap,'-', powb.batch_code) palletCode,
+ concat(pow.workorder_code_sap,'-', powb.batch_code,'-',powbp.pallet_num) palletCode,
powbp.pallet_num palletNo
from pro_order_workorder pow
left join pro_order_workorder_batch powb on pow.workorder_id = powb.workorder_id
@@ -697,7 +697,7 @@
and powbp.batch_code = powb.batch_code
where pow.workorder_code = #{workorderCode} and pow.del_flag = '0' and powb.del_flag = '0'
and powbp.pallet_num = #{palletNo}
- order by CAST(powbp.pallet_num AS INT)
+ order by CAST(powbp.pallet_num AS INT),powb.batch_code
@@ -819,16 +819,41 @@
)
+
+ update pro_order_workorder_batch_pallet
+
+ quantity = #{batchQuantity},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ factory_code = #{factoryCode},
+
+ where pallet_code = #{palletCode}
+
+
+
INSERT INTO pro_order_workorder_batch_pallet (
- id,workorder_code,batch_code,quantity,pallet_num,
- create_time,pallet_code
+ id,workorder_code,batch_code,quantity,pallet_num,create_by,
+ create_time,pallet_code,add_flag
)VALUES
- (
+ (
#{d.recordId},#{d.workorderCode},#{d.batchCode},#{d.batchQuantity},#{d.palletNo},
- #{d.createTime},#{d.palletCode}
- )
+ #{d.createBy},#{d.createTime},#{d.palletCode},#{d.addFlag}
+ )
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java
index 252af4e1b..322566ac5 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskInventoryController.java
@@ -150,10 +150,34 @@ public class QcCheckTaskInventoryController extends BaseController {
public AjaxResult createCCTaskFromOA(@RequestBody OACheckTaskDTO dto) {
logger.info("oa发起库存检验参数"+ JSONObject.toJSONString(dto));
if(StringUtils.isBlank(dto.getFactoryCode())){
- error("[factoryCode is null]");
+ return AjaxResult.error("[factoryCode is null]");
}
if(CollectionUtils.isEmpty(dto.getDetail())){
- error("[detail is null]");
+ return AjaxResult.error("[detail is null]");
+ }
+ if(StringUtils.isBlank(dto.getApplyNo())){
+ return AjaxResult.error("[applyNo is null]");
+ }
+
+ for(QcCheckTaskInventory qcCheckTaskInventory : dto.getDetail()){
+ if(StringUtils.isBlank(qcCheckTaskInventory.getSerialNumber())){
+ return AjaxResult.error("[serialNumber is null]");
+ }
+ if(StringUtils.isBlank(qcCheckTaskInventory.getMaterialCode())){
+ return AjaxResult.error("[materialCode is null]");
+ }
+ if(StringUtils.isBlank(qcCheckTaskInventory.getMaterialName())){
+ return AjaxResult.error("[materialName is null]");
+ }
+ if(StringUtils.isBlank(qcCheckTaskInventory.getIncomeBatchNo())){
+ return AjaxResult.error("[incomeBatchNo is null]");
+ }
+ if(StringUtils.isBlank(qcCheckTaskInventory.getUnit())){
+ return AjaxResult.error("[unit is null]");
+ }
+ if(qcCheckTaskInventory.getQuality() == null){
+ return AjaxResult.error("[quality is null]");
+ }
}
return qcCheckTaskInventoryService.createCCTaskFromOA(dto);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java
index 1afabfbec..1a3bb13ed 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java
@@ -488,11 +488,22 @@ public class QcStaticTableController extends BaseController {
}
}
/**
- * 定量值分析--表头--产品名称
+ * 检验分析报表--表头--
**/
- @GetMapping("/getTableHzTitle")
- @Log(title = "检验分类汇总", businessType = BusinessType.QUERY)
- public QcStaticTable getTableHzTitle(QcStaticTable qcStaticTable) {
+ @PostMapping("/getTableHzTitle")
+ @Log(title = "检验分析报表", businessType = BusinessType.QUERY)
+ public QcStaticTable getTableHzTitle(@RequestBody QcStaticTable qcStaticTable) {
return qcStaticTableService.getTableHzTitle(qcStaticTable);
}
+ /**
+ * 检验分析报表--巡检不良趋势图
+ **/
+ @PostMapping("/getTableHzData")
+ public List getTableHzLineData(@RequestBody QcStaticTable qcStaticTable) {
+ return qcStaticTableService.getTableHzData(qcStaticTable);
+ }
+ @PostMapping("/getTableHzNoOkData")
+ public List getTableHzNoOkData(@RequestBody QcStaticTable qcStaticTable) {
+ return qcStaticTableService.getTableHzNoOkData(qcStaticTable);
+ }
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/OACheckTaskDTO.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/OACheckTaskDTO.java
index 7056e29bc..788550ed3 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/OACheckTaskDTO.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/OACheckTaskDTO.java
@@ -2,6 +2,7 @@ package com.op.quality.domain;
import com.op.common.core.web.domain.BaseEntity;
+import java.sql.Date;
import java.util.List;
/**
@@ -12,60 +13,81 @@ import java.util.List;
*/
public class OACheckTaskDTO extends BaseEntity {
private static final long serialVersionUID = 1L;
- //申请单号
- private String applNo;
- /**
- * 检测人工号
- */
- private String checkManCode;
- /**
- * 检测人姓名
- */
- private String checkManName;
- /**
- * QC主管工号
- **/
- private String qcMgr;
- /**
- * 质量主管工号
- **/
- private String zlMgr;
-
- private String factoryCode;
-
- private int taskNum;
-
- public int getTaskNum() {
- return taskNum;
- }
-
- public void setTaskNum(int taskNum) {
- this.taskNum = taskNum;
- }
+ private String recordId;
+ private String applyNo;//申请单号
+ private String applicant;//申请人
+ private String applyDepartment;//申请部门
+ private Date applyDate;//申请日期
+ private String storeAddress;//物品存放地点
+ private String type;//复检物品种类
+ private String checkManCode;//检验人员工号
+ private String checkManName;//检验人员姓名
+ private String qcManager;//QC主管工号
+ private String zlManager;//质量主管工号
+ private String treatmentMan;//处理方案人员工号
+ private int taskNum;//子任务数
+ private String status;//检验状态 0未完成 1检验完成
+ private String factoryCode;//工厂编码
+ private String delFlag;//删除标志
//任务明细
private List detail;
- public String getFactoryCode() {
- return factoryCode;
+ //流程表单中有 数据库表没有
+ //其他仓库
+ //方案处理执行人员
+ //附件
+
+ public String getRecordId() {
+ return recordId;
+ }
+ public void setRecordId(String recordId) {
+ this.recordId = recordId;
}
- public void setFactoryCode(String factoryCode) {
- this.factoryCode = factoryCode;
+ public String getApplyNo() {
+ return applyNo;
+ }
+ public void setApplyNo(String applyNo) {
+ this.applyNo = applyNo;
}
- public String getApplNo() {
- return applNo;
+ public String getApplicant() {
+ return applicant;
+ }
+ public void setApplicant(String applicant) {
+ this.applicant = applicant;
}
- public void setApplNo(String applNo) {
- this.applNo = applNo;
+ public String getApplyDepartment() {
+ return applyDepartment;
+ }
+ public void setApplyDepartment(String applyDepartment) {
+ this.applyDepartment = applyDepartment;
+ }
+
+ public Date getApplyDate() {
+ return applyDate;
+ }
+ public void setApplyDate(Date applyDate) {
+ this.applyDate = applyDate;
+ }
+
+ public String getStoreAddress() { return storeAddress; }
+ public void setStoreAddress(String storeAddress) {
+ this.storeAddress = storeAddress;
+ }
+
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
}
public String getCheckManCode() {
return checkManCode;
}
-
public void setCheckManCode(String checkManCode) {
this.checkManCode = checkManCode;
}
@@ -73,31 +95,62 @@ public class OACheckTaskDTO extends BaseEntity {
public String getCheckManName() {
return checkManName;
}
-
public void setCheckManName(String checkManName) {
this.checkManName = checkManName;
}
- public String getQcMgr() {
- return qcMgr;
+ public String getQcManager() {
+ return qcManager;
+ }
+ public void setQcManager(String qcManager) {
+ this.qcManager = qcManager;
}
- public void setQcMgr(String qcMgr) {
- this.qcMgr = qcMgr;
+ public String getZlManager() {
+ return zlManager;
+ }
+ public void setZlManager(String zlManager) {
+ this.zlManager = zlManager;
}
- public String getZlMgr() {
- return zlMgr;
+ public String getTreatmentMan() {
+ return treatmentMan;
+ }
+ public void setTreatmentMan(String treatmentMan) {
+ this.treatmentMan = treatmentMan;
}
- public void setZlMgr(String zlMgr) {
- this.zlMgr = zlMgr;
+ public int getTaskNum() {
+ return taskNum;
+ }
+ public void setTaskNum(int taskNum) {
+ this.taskNum = taskNum;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getDelFlag() {
+ return delFlag;
+ }
+ public void setDelFlag(String delFlag) {
+ this.delFlag = delFlag;
+ }
+
+ public String getFactoryCode() {
+ return factoryCode;
+ }
+ public void setFactoryCode(String factoryCode) {
+ this.factoryCode = factoryCode;
}
public List getDetail() {
return detail;
}
-
public void setDetail(List detail) {
this.detail = detail;
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java
index cf51b102a..5205ae47a 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java
@@ -190,6 +190,7 @@ public class QcCheckTaskIncome extends BaseEntity {
private String fileList;
private List files;
private String remark;
+ private String remarkCode;
private String belongTo;
private String oldBelongTo;
private String noOkQualityNames;
@@ -852,6 +853,14 @@ public class QcCheckTaskIncome extends BaseEntity {
return delFlag;
}
+ public String getRemarkCode() {
+ return remarkCode;
+ }
+
+ public void setRemarkCode(String remarkCode) {
+ this.remarkCode = remarkCode;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java
index c2c21b301..8668ec6c0 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskInventory.java
@@ -216,6 +216,9 @@ public class QcCheckTaskInventory extends BaseEntity {
private String checkTimeStart;
private String checkTimeEnd;
+ //序号 复检流程单用
+ private String serialNumber;
+
private List defects;
public void setRecordId(String recordId) {
@@ -514,6 +517,14 @@ public class QcCheckTaskInventory extends BaseEntity {
this.defects = defects;
}
+ public String getSerialNumber() {
+ return serialNumber;
+ }
+
+ public void setSerialNumber(String serialNumber) {
+ this.serialNumber = serialNumber;
+ }
+
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
index 87f6447da..ac22c1fe4 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
@@ -88,6 +88,7 @@ public class QcStaticTable extends BaseEntity {
private String projectNo;
private String status;
private String ymdms;
+ private String ymdUntype;
private String column080090;
private String column090100;
private String column100110;
@@ -113,6 +114,14 @@ public class QcStaticTable extends BaseEntity {
private List columns1;
private List columns2;
+ public String getYmdUntype() {
+ return ymdUntype;
+ }
+
+ public void setYmdUntype(String ymdUntype) {
+ this.ymdUntype = ymdUntype;
+ }
+
public List getColumns1() {
return columns1;
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java
index 0776965af..97fb80b05 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskInventoryMapper.java
@@ -2,6 +2,7 @@ package com.op.quality.mapper;
import java.util.List;
+import com.op.quality.domain.OACheckTaskDTO;
import com.op.quality.domain.QcCheckTaskIncome;
import com.op.quality.domain.QcCheckTaskInventory;
import com.op.quality.domain.QcCheckTaskProduce;
@@ -69,4 +70,7 @@ public interface QcCheckTaskInventoryMapper {
List getPutInOrder(QcCheckTaskInventory qcCheckTaskInventory);
List getPutInOrderList(QcCheckTaskInventory qoPutIn);
+
+ //创建 qc_check_oa_task 复检申请记录
+ void insertQcCheckOaTask(OACheckTaskDTO dto);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
index 9707784a2..3662d820d 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
@@ -85,4 +85,10 @@ public interface QcStaticTableMapper {
List getTableHzTitle(QcStaticTable qcStaticTable);
List getTableHzTitle2(QcStaticTable qcStaticTable);
+ @MapKey("ymdms")
+ Map getSamplesNum(QcStaticTable qcStaticTable);
+ @MapKey("ymdUntype")
+ Map getNoOkNum(QcStaticTable qcStaticTable);
+
+ List getTableHzNoOkData(QcStaticTable qcStaticTable);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java
index 19c902d89..b9134bf62 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java
@@ -1,5 +1,6 @@
package com.op.quality.service;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -51,4 +52,8 @@ public interface IQcStaticTableService {
List getProjectList(String checkType);
QcStaticTable getTableHzTitle(QcStaticTable qcStaticTable);
+
+ List getTableHzData(QcStaticTable qcStaticTable);
+
+ List getTableHzNoOkData(QcStaticTable qcStaticTable);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
index 5bb13f950..00e1bc590 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
@@ -678,6 +678,7 @@ public class QcCheckTaskIncomeServiceImpl implements
qcCheckTask.setUpdateTime(nowTime);
qcCheckTask.setCheckTime(nowTime);
qcCheckTask.setRemark(qcCheckTaskIncome.getRemark());
+ qcCheckTask.setRemarkCode(qcCheckTaskIncome.getRemarkCode());
qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格
qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo());
BigDecimal noOkQquality = new BigDecimal("0");
@@ -688,7 +689,11 @@ public class QcCheckTaskIncomeServiceImpl implements
qcCheckTask.setNoOkQuality(noOkQquality);//累计不合格数
qcCheckTask.setCheckManCode(qcCheckTaskIncome.getUpdateBy());
qcCheckTask.setCheckManName(qcCheckTaskIncome.getUpdateByName());
+
+
+
qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
+
qcCheckTask.setReason(qcCheckTaskIncome.getReason());
qcCheckTask.setBz(qcCheckTaskIncome.getAttr3());//备注
@@ -720,34 +725,10 @@ public class QcCheckTaskIncomeServiceImpl implements
qcCheckTask.setSccj(qcCheckTaskIncome.getSccj());// 所属车间
qcCheckTask.setSqr(qcCheckTaskIncome.getSqr());// 申请人Id
- /**qc_check_task_cg**/
- List valiData = qcCheckTaskIncomeMapper.selectQcCheckTaskCgByRecordId(belongId);
- // 判断表中是否存在此条数据
- if (valiData != null && valiData.size() > 0) {
- n = qcCheckTaskIncomeMapper.updateQcCheckTaskCg(qcCheckTask);//updateQcCheckTaskCG
- }else {
- qcCheckTask.setCheckNo(qcCheckTaskIncome.getCheckNo());
- qcCheckTask.setOrderNo(qcCheckTaskIncome.getOrderNo());
- qcCheckTask.setMaterialCode(qcCheckTaskIncome.getMaterialCode());
- qcCheckTask.setMaterialName(qcCheckTaskIncome.getMaterialName());
- qcCheckTask.setOrderType(qcCheckTaskIncome.getOrderType());
- qcCheckTask.setOrderTypeDesc(qcCheckTaskIncome.getOrderTypeDesc());
- qcCheckTask.setCreateBy(qcCheckTaskIncome.getCreateBy());
- qcCheckTask.setCreateTime(DateUtils.getNowDate());
- qcCheckTask.setIncomeTime(qcCheckTaskIncome.getIncomeTime());
- qcCheckTask.setFactoryCode(qcCheckTaskIncome.getFactoryCode());
- qcCheckTask.setCheckType(qcCheckTaskIncome.getCheckType());
-
- qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality());
- qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality());
- qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality());
-
- n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncomeCg(qcCheckTask);
- }
- logger.info("qc_check_task:"+n);
- /**更新qc_check_task_detail**/
+ BigDecimal sampleQuality = new BigDecimal("0");
for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
+ sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality()));
//上传附件
if (StringUtils.isNotEmpty(detail.getFileListStr())) {
String[] ids = detail.getFileListStr().split(",");
@@ -769,6 +750,41 @@ public class QcCheckTaskIncomeServiceImpl implements
}
}
+
+ /**qc_check_task_cg**/
+ List valiData = qcCheckTaskIncomeMapper.selectQcCheckTaskCgByRecordId(belongId);
+ // 判断表中是否存在此条数据
+ if (valiData != null && valiData.size() > 0) {
+ n = qcCheckTaskIncomeMapper.updateQcCheckTaskCg(qcCheckTask);//updateQcCheckTaskCG
+ }else {
+
+ if(qcCheckTaskIncome.getSampleQuality().equals(BigDecimal.ZERO)){
+ qcCheckTask.setSampleQuality(sampleQuality);
+ }else{
+ qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
+ }
+
+ qcCheckTask.setCheckNo(qcCheckTaskIncome.getCheckNo());
+ qcCheckTask.setOrderNo(qcCheckTaskIncome.getOrderNo());
+ qcCheckTask.setMaterialCode(qcCheckTaskIncome.getMaterialCode());
+ qcCheckTask.setMaterialName(qcCheckTaskIncome.getMaterialName());
+ qcCheckTask.setOrderType(qcCheckTaskIncome.getOrderType());
+ qcCheckTask.setOrderTypeDesc(qcCheckTaskIncome.getOrderTypeDesc());
+ qcCheckTask.setCreateBy(qcCheckTaskIncome.getCreateBy());
+ qcCheckTask.setCreateTime(DateUtils.getNowDate());
+ qcCheckTask.setIncomeTime(qcCheckTaskIncome.getIncomeTime());
+ qcCheckTask.setFactoryCode(qcCheckTaskIncome.getFactoryCode());
+ qcCheckTask.setCheckType(qcCheckTaskIncome.getCheckType());
+
+ qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality());
+ qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality());
+ qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality());
+
+ n = qcCheckTaskIncomeMapper.insertQcCheckTaskIncomeCg(qcCheckTask);
+ }
+ logger.info("qc_check_task:"+n);
+ /**更新qc_check_task_detail**/
+
n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);
logger.info("更新qc_check_task_detail:"+n);
@@ -841,6 +857,7 @@ public class QcCheckTaskIncomeServiceImpl implements
qcCheckTask.setUpdateTime(nowTime);
qcCheckTask.setCheckTime(nowTime);
qcCheckTask.setRemark(qcCheckTaskIncome.getRemark());
+ qcCheckTask.setRemarkCode(qcCheckTaskIncome.getRemarkCode());
qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格
qcCheckTask.setIncomeBatchNo(qcCheckTaskIncome.getIncomeBatchNo());
BigDecimal noOkQquality = new BigDecimal("0");
@@ -860,7 +877,7 @@ public class QcCheckTaskIncomeServiceImpl implements
BigDecimal sampleQuality = new BigDecimal("0");
for(QcCheckTaskDetail detail:details){
detail.setUpdateTime(nowTime);
- sampleQuality = noOkQquality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality()));
+ sampleQuality = sampleQuality.add(new BigDecimal(detail.getSampleQuality()==null?"0":detail.getSampleQuality()));
//上传附件
if (StringUtils.isNotEmpty(detail.getFileListStr())) {
String[] ids = detail.getFileListStr().split(",");
@@ -882,7 +899,12 @@ public class QcCheckTaskIncomeServiceImpl implements
}
}
- qcCheckTask.setSampleQuality(sampleQuality);
+ if(qcCheckTaskIncome.getSampleQuality().equals(BigDecimal.ZERO)){
+ qcCheckTask.setSampleQuality(sampleQuality);
+ }else{
+ qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality());
+ }
+
/**qc_check_task**/
n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask);
logger.info("qc_check_task:"+n);
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java
index 63657d04a..ed826998f 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskInventoryServiceImpl.java
@@ -387,15 +387,24 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
@Override
public AjaxResult createCCTaskFromOA(OACheckTaskDTO dto) {
List dtos = dto.getDetail();
- int m=0;
- for(QcCheckTaskInventory ccTask:dtos){
- ccTask.setAttr1(dto.getApplNo());//申请编码
+ int m = 0;
+ for(QcCheckTaskInventory ccTask : dtos){
+ ccTask.setOrderNo(dto.getApplyNo() + ":" + ccTask.getSerialNumber() );//订单号 = 申请单号 +:+序号
+ ccTask.setAttr1(dto.getApplyNo());//申请编码
ccTask.setCheckType("checkTypeCC");//库存检验
ccTask.setFactoryCode(dto.getFactoryCode());
- m += insertQcCheckTaskInventory(ccTask);
+ if(ccTask.getIncomeTime() == null){
+ ccTask.setIncomeTime(DateUtils.getNowDate());//如果生产日期和入库时间
+ }
+ insertQcCheckTaskInventory(ccTask);
+ m++;
}
- //TODO;
- /**qc_check_oa_task**/
+ /**qc_check_oa_task表新增**/
+ dto.setRecordId(IdUtils.fastSimpleUUID());
+ dto.setTaskNum(dtos.size());
+ dto.setCreateTime(DateUtils.getNowDate());//创建时间
+ dto.setCreateBy(dto.getApplicant());//创建人
+ qcCheckTaskInventoryMapper.insertQcCheckOaTask(dto);
logger.info("++++++++++++oa发起仓库检验任务生成" + m + "++++++++++++++");
return success();
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java
index b44dc61b1..152b0b24a 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java
@@ -151,6 +151,11 @@ public class QcProCheckServiceImpl implements QcProCheckService {
Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail);
for (QcCheckTaskDetail qcd : qcCheckTaskDetails) {
+
+ if(StringUtils.isNotBlank(qcd.getSampleQuality())){
+ qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数
+ }
+
List files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId());
if (CollectionUtils.isNotEmpty(files)) {
qcd.setFiles(files);
@@ -185,7 +190,10 @@ public class QcProCheckServiceImpl implements QcProCheckService {
Map defectMap = qcCheckTaskDefectMapper.getDefectMap(qcCheckTaskDetail);
for (QcCheckTaskDetail qcd : qcCheckTaskDetails) {
- qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数
+ if(StringUtils.isNotBlank(qcd.getSampleQuality())){
+ qcd.setSampleQuality(qcd.getSampleQuality().replaceAll("\\..*", ""));//去掉小数
+ }
+
List files = qmsFileMapper.getBaseFileBatch(qcd.getRecordId());
if (CollectionUtils.isNotEmpty(files)) {
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
index 00430ee2e..e8d746dae 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
@@ -4,6 +4,11 @@ import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.Month;
+import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
+import java.time.format.TextStyle;
import java.util.*;
import java.util.stream.Collectors;
@@ -788,15 +793,17 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
public QcStaticTable getTableHzTitle(QcStaticTable qcStaticTable) {
QcStaticTable dto = new QcStaticTable();
qcStaticTable.setDataType("unqualified_remark");
- qcStaticTable.setRemark("checkTypeCP");
+ qcStaticTable.setRemark(qcStaticTable.getCheckType());
List cols1 = qcStaticTableMapper.getTableHzTitle(qcStaticTable);
+
if(CollectionUtils.isEmpty(cols1)){
return dto;
}
- dto.setColumns1(cols1);
- List cols2 = qcStaticTableMapper.getTableHzTitle2(qcStaticTable);
- dto.setColumns2(cols2);
+ dto.setColumns1(cols1);
+// List cols2 = qcStaticTableMapper.getTableHzTitle2(qcStaticTable);
+//
+// dto.setColumns2(cols2);
return dto;
}
@@ -876,8 +883,152 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return days;
}
+ @Override
+ @DS("#header.poolName")
+ public List getTableHzData(QcStaticTable qcStaticTable) {
+ List dtos = new ArrayList<>();
+ qcStaticTable.setDataType("unqualified_remark");
+ qcStaticTable.setRemark(qcStaticTable.getCheckType());
+ List noOkTyps = qcStaticTableMapper.getTableHzTitle(qcStaticTable);
+ //第一列日期
+ List days = this.getHzDays(qcStaticTable.getIncomeTimeStr(),qcStaticTable.getYmdms());
+ //抽样数、不良数、不良率
+ Map samples = qcStaticTableMapper.getSamplesNum(qcStaticTable);
+ if(samples.isEmpty()){
+ return dtos;
+ }
+ //不良数
+ Map noOks = qcStaticTableMapper.getNoOkNum(qcStaticTable);
+ HashMap colMap = null;
+ for(String col:days){
+ colMap = new HashMap();
+ colMap.put("timeCol",col);
+ String samKey = col;
+ QcStaticTable sampl = samples.get(samKey);
+ if(sampl!=null&&!sampl.getSampleQuality().equals("0.00")){
+ colMap.put("sampleQuality",sampl.getSampleQuality().replaceAll("\\..*", ""));
+ BigDecimal noOkRate = new BigDecimal(sampl.getNoOkQuality()).multiply(new BigDecimal("100.00"))
+ .divide(new BigDecimal(sampl.getSampleQuality()),2, BigDecimal.ROUND_HALF_UP);
+ colMap.put("noOkRate",noOkRate);
+ }else{
+ colMap.put("sampleQuality","0");
+ colMap.put("noOkRate","0");
+ }
+
+ //缺陷不良
+ for(int i=0;i< noOkTyps.size();i++){
+ String noOkTyp = noOkTyps.get(i);
+ String noOkTypeKey = col+noOkTyp;
+ QcStaticTable noOk = noOks.get(noOkTypeKey);
+ if(noOk!=null&&noOk.getNoOkQuality()!=null) {
+ colMap.put("col"+i, noOk.getNoOkQuality().replaceAll("\\..*", ""));
+ }else{
+ colMap.put("col"+i, "0");
+ }
+ }
+
+ dtos.add(colMap);
+ }
+
+ return dtos;
+ }
+
+ @Override
+ @DS("#header.poolName")
+ public List getTableHzNoOkData(QcStaticTable qcStaticTable) {
+ //不良数
+ List dtos = qcStaticTableMapper.getTableHzNoOkData(qcStaticTable);
+
+ BigDecimal totalNoOkQuality = BigDecimal.ZERO;
+ //求不良数和
+ for (QcStaticTable dto : dtos) {
+ totalNoOkQuality = totalNoOkQuality.add(new BigDecimal(dto.getNoOkQuality()));
+ }
+ //求占比
+ for (QcStaticTable dto : dtos) {
+ BigDecimal noOkratio = new BigDecimal(dto.getNoOkQuality())
+ .divide(totalNoOkQuality,2, BigDecimal.ROUND_HALF_UP);
+ dto.setNoOkNumRate(noOkratio.toString());
+ dto.setNoOkQuality(dto.getNoOkQuality().replaceAll("\\..*", ""));
+ }
+ return dtos;
+ }
+
+ /****/
+ public List getHzDays(String timeStr,String ymd) {
+ // 返回的日期集合
+ List days = new ArrayList();
+ DateFormat dateFormat = null;
+ try {
+ Calendar tempStart = null;
+ Calendar tempEnd = null;
+ if ("dd".equals(ymd)) {//天内各小时
+ for (int i = 0; i < 24; i++) {
+ // 使用String.format()格式化小时,保证每个小时都是两位数
+ String hourS = String.format("%02d", i);//String.format("%02d:00", i);
+ days.add(hourS);
+ }
+ } else if ("mm".equals(ymd)){//月内各日
+ int year = Integer.parseInt(timeStr.split("-")[0]);
+ int month = Integer.parseInt(timeStr.split("-")[1]);
+ YearMonth yearMonth = YearMonth.of(year, month);
+ // 获取该月份的第一天
+ LocalDate firstDayOfMonth = yearMonth.atDay(1);
+ // 循环直到下一个月的第一天
+ LocalDate currentDate = firstDayOfMonth;
+ while (currentDate.getMonthValue() == month) {
+ // 使用DateTimeFormatter格式化日期为字符串
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ String formattedDate = currentDate.format(formatter);
+ days.add(formattedDate);
+
+ // 移动到下一天
+ currentDate = currentDate.plusDays(1);
+ }
+ } else if ("yyyy".equals(ymd)){//
+ for (Month month : Month.values()) {
+ // 使用String.format来构造"yyyy-MM"格式的字符串
+ // %d用于整数(年份和月份),但月份需要前面补0(使用%02d)
+ String formattedMonth = String.format("%d-%02d", Integer.parseInt(timeStr), month.getValue());
+ days.add(formattedMonth);
+ }
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return days;
+ }
+
+ public static List getDaysOfMonth(int year, int month) {
+ List days = new ArrayList<>();
+ YearMonth yearMonth = YearMonth.of(year, month);
+ // 获取该月份的第一天
+ LocalDate firstDayOfMonth = yearMonth.atDay(1);
+
+ // 循环直到下一个月的第一天
+ LocalDate currentDate = firstDayOfMonth;
+ while (currentDate.getMonthValue() == month) {
+ // 使用DateTimeFormatter格式化日期为字符串
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ String formattedDate = currentDate.format(formatter);
+ days.add(formattedDate);
+
+ // 移动到下一天
+ currentDate = currentDate.plusDays(1);
+ }
+
+ return days;
+ }
+
public static void main(String args[]){
- double a = 0.01;
- System.out.println(new BigDecimal(a).compareTo(BigDecimal.ZERO));
+ List months = new ArrayList<>();
+ for (Month month : Month.values()) {
+ // 使用String.format来构造"yyyy-MM"格式的字符串
+ // %d用于整数(年份和月份),但月份需要前面补0(使用%02d)
+ String formattedMonth = String.format("%d-%02d",2024, month.getValue());
+ months.add(formattedMonth);
+ }
+ System.out.println(months);
}
}
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml
index abdd4fe76..bcb892350 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml
@@ -39,6 +39,7 @@
+
@@ -46,7 +47,7 @@
supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code,
check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by,
create_time, update_by, update_time, factory_code, del_flag , check_type,sample_quality, noOk_quality,
- order_type,order_type_desc
+ order_type,order_type_desc,remark
from qc_check_task
@@ -313,6 +314,7 @@
cNoOkquality = #{cNoOkquality},
income_batch_no = #{incomeBatchNo},
remark = #{remark},
+ remark_code = #{remarkCode},
reason = #{reason},
bz = #{bz},
cxzz = #{cxzz},
@@ -362,6 +364,7 @@
order_type,
order_type_desc,
remark,
+ remark_code,
reason,
bz,
start_oA,
@@ -420,6 +423,7 @@
#{orderType},
#{orderTypeDesc},
#{remark},
+ #{remarkCode},
#{reason},
#{bz},
#{startOA},
@@ -458,6 +462,7 @@
cNoOkquality = #{cNoOkquality},
income_batch_no = #{incomeBatchNo},
remark = #{remark},
+ remark_code = #{remarkCode},
reason = #{reason},
bz = #{bz},
start_oA = #{startOA},
@@ -592,6 +597,7 @@
qct.income_time incomeTime,
qct.check_loc checkLoc,
qct.remark,
+ qct.remark_code remarkCode,
qct.cxzz,
qct.jgy,
qct.pgy
@@ -621,6 +627,7 @@
qct.income_time incomeTime,
qct.check_loc checkLoc,
qct.remark,
+ qct.remark_code remarkCode,
qct.czbjr,
qct.zcf,
qct.zcoemcm,
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml
index 58372c0cd..4ea2660b1 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskInventoryMapper.xml
@@ -362,4 +362,52 @@
)t0
where t0.days >= t0.warehouse_cycle
+
+
+ insert into qc_check_oa_task
+
+ record_id,
+ apply_no,
+ applicant,
+ apply_department,
+ apply_date,
+ store_address,
+ type,
+ check_man_code,
+ check_man_name,
+ qc_manager,
+ zl_manager,
+ treatment_man,
+ task_num,
+ status,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ factory_code,
+ del_flag,
+
+
+ #{recordId},
+ #{applyNo},
+ #{applicant},
+ #{applyDepartment},
+ #{applyDate},
+ #{storeAddress},
+ #{type},
+ #{checkManCode},
+ #{checkManName},
+ #{qcManager},
+ #{zlManager},
+ #{treatmentMan},
+ #{taskNum},
+ '0',
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{factoryCode},
+ #{delFlag},
+
+
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
index 2a64281d1..68d971b47 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
@@ -498,4 +498,116 @@
+
+
+
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
index 110160a39..2f4196c10 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
@@ -323,6 +323,14 @@ public class WmsToWCSmissionController {
public AjaxResult WmsProductPutByWorkOrderConfirm(@RequestBody WmsProductPut wmsProductPut) {
return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderConfirm(wmsProductPut));
}
+ /**
+ * 成品
+ * 新手持接口:确认
+ */
+ @PostMapping("/WmsProductPutByWorkOrderConfirmT")
+ public AjaxResult WmsProductPutByWorkOrderConfirmT(@RequestBody WmsProductPut wmsProductPut) {
+ return AjaxResult.success(wmsProductPutService.WmsProductPutByWorkOrderConfirmT(wmsProductPut));
+ }
/**
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java
index 129af20e9..02bc8cbbd 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProduct.java
@@ -355,6 +355,15 @@ public class BaseProduct extends BaseEntity {
private String mvgr5;
private String palletNum;
private String warehouseCycle;
+ private String packType;
+
+ public String getPackType() {
+ return packType;
+ }
+
+ public void setPackType(String packType) {
+ this.packType = packType;
+ }
public String getMvgr5() {
return mvgr5;
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProductAttached.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProductAttached.java
index cf47713e2..f0d05c8ff 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProductAttached.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseProductAttached.java
@@ -124,6 +124,15 @@ public class BaseProductAttached extends BaseEntity {
private String other;
private String warehouseCycle;
private String palletNum;
+ private String packType;
+
+ public String getPackType() {
+ return packType;
+ }
+
+ public void setPackType(String packType) {
+ this.packType = packType;
+ }
public String getPalletNum() {
return palletNum;
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
index ea5878ecc..fa1af2aaf 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
@@ -142,4 +142,6 @@ public interface IWmsProductPutService {
WmsProductPut WmsProductPutByWorkOrderqueryBS(WmsProductPut wmsProductPut);
ProOrderWorkorder finishedProductProductionRecordscar(ProOrderWorkorder proOrderWorkorder);
+
+ String WmsProductPutByWorkOrderConfirmT(WmsProductPut wmsProductPutList);
}
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java
index e6dac7880..bcf451688 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java
@@ -810,6 +810,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
wmsOdsEmStorageNews.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码
wmsOdsEmStorageNews.setWaCode(wmsRawOrderInSn.getWaCode());//库位编码
wmsOdsEmStorageNews.setMaterialCode(wmsRawOrderInSn.getMaterialCode());
+ wmsOdsEmStorageNews.setUserDefined2(formattedDate);//批次
wmsOdsEmStorageNews.setAmount(wmsRawOrderInSn.getAmount());
//添加库存--这个要有个判断有没有这个库存如果没有的话,就插入
WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews);
@@ -838,8 +839,6 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
-
-
}else {////失败|
result="暂收失败";
order.setSapTempInfor(result2.getMsg());
@@ -1070,6 +1069,11 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
}
+
+
+
+
+
@Override
public List getIdCardList(OdsProcureOrder odsProcureOrder) {
List orderList= odsProcureOrderMapper.getIdCardList(odsProcureOrder);
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
index 7f23b589f..288d346a0 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
@@ -1058,9 +1058,33 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
if (wmsProductProductionRecords.size()>0){
WmsProductProductionRecords wmsProductProductionRecords1= wmsProductProductionRecords.get(0);
wmsProductPut1.setSn(wmsProductProductionRecords1.getSn());
+ WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords();
+ wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet());
+ List wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords);
+ if(wmsProductPutRecords1.size()>0){
+ wmsProductPut1.setRemark("1");//已经入库
+ wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber());
+ }else {
+ wmsProductPut1.setRemark("0");//未入库
+ }
}else {
- return null;
+ //他们又不想在成品下线的时候绑托盘,--让标识卡代替托盘码,如果没有绑的话,就标识卡代替托盘码
+ wmsProductPut1.setSn(wmsProductPut.getPallet());
+ WmsProductPutRecords wmsProductPutRecords=new WmsProductPutRecords();
+ wmsProductPutRecords.setUserDefined1(wmsProductPut.getPallet());
+ List wmsProductPutRecords1= wmsProductPutRecordsMapper.selectWmsProductPutRecordsList(wmsProductPutRecords);
+ if(wmsProductPutRecords1.size()>0){
+ wmsProductPut1.setRemark("1");//已经入库
+ wmsProductPut1.setNumber(wmsProductPutRecords1.get(0).getNumber());
+ }else {
+ wmsProductPut1.setRemark("0");//未入库
+ }
+// return null;
}
+ if (wmsProductPut1.getAttr3()==null){
+ wmsProductPut1.setAttr3(wmsProductPut1.getPlanQuantity().toString());
+ }
+ wmsProductPut1.setPallet(wmsProductPut.getPallet());
return wmsProductPut1;
}
@@ -1087,6 +1111,124 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
return proOrderWorkorder;
}
+ @Override
+ public String WmsProductPutByWorkOrderConfirmT(WmsProductPut wmsProductPut) {
+// whCode
+// waCode
+// factoryCode
+
+ DynamicDataSourceContextHolder.push("ds_" + wmsProductPut.getFactoryCode());
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+ Date date = new Date();
+ String formattedDate = dateFormat.format(date);//批次
+ List wmsProductPutList = wmsProductPut.getWmsProductPut();//前端下栏保存的数据
+
+ String SUCCESS = "操作成功";
+ for (WmsProductPut wmsProductPut1 :
+ wmsProductPutList) {
+ //根据下面的记录--先查询对应订单,如果有原来的订单的话,就在原来的订单上进行修改,如果没有就先插入,如果有就修改数量
+ WmsProductPut wmsProductPutk = new WmsProductPut();
+ //wms_product_put
+ wmsProductPutk.setWorkOrder(wmsProductPut1.getWorkOrder());
+ wmsProductPutk.setProductOrder(wmsProductPut1.getProductOrder());
+ wmsProductPutk.setFactoryCode(wmsProductPut.getFactoryCode());
+ wmsProductPutk.setWhCode(wmsProductPut1.getWhCode());//仓库编码
+ wmsProductPutk.setWaCode(wmsProductPut1.getWaCode());//仓库编码
+ wmsProductPutk.setProductName(wmsProductPut1.getProductName());
+ wmsProductPutk.setProductCode(wmsProductPut1.getProductCode());
+ wmsProductPutk.setPlanQuantity(wmsProductPut1.getPlanQuantity());
+ wmsProductPutk.setUnitOfMeasure(wmsProductPut1.getUnitOfMeasure());
+ wmsProductPutk.setBatchNumber(wmsProductPut1.getBatchNumber());//
+ List wmsProductPutLists= wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
+ if (wmsProductPutLists.size()>0){//有
+ WmsProductPut wmsProductPut2= wmsProductPutLists.get(0);
+ BigDecimal planQuantity= wmsProductPut2.getPlanQuantity();
+ BigDecimal putQuantity= wmsProductPut2.getPutQuantity();
+ if (planQuantity.equals(putQuantity.add(new BigDecimal(wmsProductPut1.getNumber())))){
+ wmsProductPutk.setStatus("1");
+ }else {
+ wmsProductPutk.setStatus("2");
+ }
+ BigDecimal putQuantityT=putQuantity.add(new BigDecimal(wmsProductPut1.getNumber()));//入库数量
+ wmsProductPut2.setPutQuantity(putQuantityT);
+ wmsProductPut2.setUpdateTime(new Date());
+ wmsProductPut2.setUpdateBy(wmsProductPut.getCreateBy());
+ wmsProductPutMapper.updateWmsProductPut(wmsProductPut2);
+ }else {
+ wmsProductPutk.setStatus("2");
+ wmsProductPutk.setSapStatus("0");
+ wmsProductPutk.setAttr3(formattedDate);//
+ wmsProductPutk.setCreateBy(wmsProductPut.getCreateBy());
+ wmsProductPutk.setCreateTime(new Date());
+ wmsProductPutk.setPutQuantity(new BigDecimal(wmsProductPut1.getNumber()));
+ wmsProductPutk.setId(IdUtils.fastSimpleUUID());
+ wmsProductPutMapper.insertWmsProductPut(wmsProductPutk);
+ }
+ WmsProductPutRecords wmsProductPutRecords = new WmsProductPutRecords();
+ wmsProductPutRecords.setWorkOrder(wmsProductPut1.getWorkOrder());
+ wmsProductPutRecords.setProductOrder(wmsProductPut1.getProductOrder());
+ wmsProductPutRecords.setProductName(wmsProductPut1.getProductName());
+ wmsProductPutRecords.setProductCode(wmsProductPut1.getProductCode());
+ wmsProductPutRecords.setWhCode(wmsProductPut1.getWhCode());//仓库编码
+ wmsProductPutRecords.setWaCode(wmsProductPut1.getWaCode());//库区编码
+ wmsProductPutRecords.setId(IdUtils.fastSimpleUUID());
+ wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode());
+ wmsProductPutRecords.setSn(wmsProductPut1.getSn());
+ wmsProductPutRecords.setNumber(wmsProductPut1.getNumber());
+ wmsProductPutRecords.setCreateBy(wmsProductPut.getCreateBy());
+ wmsProductPutRecords.setCreateTime(new Date());
+ wmsProductPutRecords.setUserDefined1(wmsProductPut1.getPallet());
+ wmsProductPutRecordsMapper.insertWmsProductPutRecords(wmsProductPutRecords);
+ //wms_fp_storage_news_sn
+ WmsFpStorageNewsSn wmsFpStorageNewsSn = new WmsFpStorageNewsSn();
+ wmsFpStorageNewsSn.setStorageId(IdUtils.fastSimpleUUID());
+ wmsFpStorageNewsSn.setFactoryCode(wmsProductPut.getFactoryCode());
+ wmsFpStorageNewsSn.setWhCode(wmsProductPut1.getWhCode());//仓库编码
+ wmsFpStorageNewsSn.setWaCode(wmsProductPut1.getWaCode());
+ wmsFpStorageNewsSn.setWlCode(wmsProductPut1.getWlCode());
+ wmsFpStorageNewsSn.setOrderNo(wmsProductPutk.getId());
+ wmsFpStorageNewsSn.setProductCode(wmsProductPut1.getProductCode());
+ wmsFpStorageNewsSn.setProductName(wmsProductPut1.getProductName());
+ wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn());
+ wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber()));
+ wmsFpStorageNewsSn.setBatchNumber(wmsProductPut1.getBatchNumber());
+ //wmsFpStorageNewsSn.setUserDefined2(formattedDate);
+ wmsFpStorageNewsSn.setCreateBy(wmsProductPut.getCreateBy());
+ wmsFpStorageNewsSn.setCreateTime(new Date());
+ wmsFpStorageNewsSn.setActiveFlag("1");
+ wmsFpStorageNewsSn.setUserDefined3(wmsProductPut1.getUnitOfMeasure());
+ wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn);
+// wms_fp_storage_news
+ WmsFpStorageNews wmsFpStorageNews = new WmsFpStorageNews();
+
+ wmsFpStorageNews.setWhCode(wmsProductPut1.getWhCode());//仓库编码
+ wmsFpStorageNews.setWaCode(wmsProductPut1.getWaCode());
+ wmsFpStorageNews.setWlCode(wmsProductPut1.getWlCode());
+ wmsFpStorageNews.setStorageType("成品");
+ wmsFpStorageNews.setProductCode(wmsProductPut1.getProductCode());
+ wmsFpStorageNews.setProductName(wmsProductPut1.getProductName());
+ wmsFpStorageNews.setFactoryCode(wmsProductPut.getFactoryCode());
+ wmsFpStorageNews.setActiveFlag("1");
+ wmsFpStorageNews.setProductBatch(wmsProductPut1.getBatchNumber());
+ wmsFpStorageNews.setUserDefined1(wmsProductPut1.getUnitOfMeasure());
+ List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews);
+ wmsFpStorageNews.setStorageId(IdUtils.fastSimpleUUID());
+ wmsFpStorageNews.setAmount(new BigDecimal(wmsProductPut1.getNumber()));
+ wmsFpStorageNews.setCreateBy(wmsProductPut.getCreateBy());
+ wmsFpStorageNews.setGmtCreate(new Date());
+ if (wmsFpStorageNewsList.size() > 0) {
+ WmsFpStorageNews wmsFpStorageNews1 = wmsFpStorageNewsList.get(0);
+ BigDecimal amount = wmsFpStorageNews1.getAmount();
+ BigDecimal amountAdd = amount.add(wmsFpStorageNews.getAmount());
+ wmsFpStorageNews1.setAmount(amountAdd);
+ wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews1);
+ } else {
+ wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews);
+ }
+ }
+ return SUCCESS;
+ }
+
@Override
public List FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) {
DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode());
diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductAttachedMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductAttachedMapper.xml
index 540b1b0af..513633c3a 100644
--- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductAttachedMapper.xml
+++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductAttachedMapper.xml
@@ -88,6 +88,7 @@
man_standar,
warehouse_cycle,
pallet_num,
+ pack_type,
spray_way,
blank_diameter,
blank_no,
@@ -110,6 +111,7 @@
#{manStandar},
#{warehouseCycle},
#{palletNum},
+ #{packType},
#{sprayWay},
#{blankDiameter},
#{blankNo},
@@ -155,7 +157,8 @@
iei = #{iei},
man_standar = #{manStandar},
warehouse_cycle = #{warehouseCycle},
- pallet_num = #{palletNum}
+ pallet_num = #{palletNum},
+ pack_type = #{packType}
where id = #{id}
diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml
index 6337fe2e5..b2f48290d 100644
--- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml
+++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseProductMapper.xml
@@ -68,7 +68,7 @@
-
+
@@ -185,7 +185,8 @@
bpa.support_no,
bpa.pvc,
bpa.support_plate,
- bpa.other,bpa.warehouse_cycle,bpa.pallet_num palletNum
+ bpa.other,bpa.warehouse_cycle,bpa.pallet_num palletNum,
+ bpa.pack_type
from base_product bp
left join base_product_attached bpa on bpa.product_code = right(bp.product_code,11)
where product_id = #{productId}
diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml
index 1476172dd..b56308ce7 100644
--- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml
+++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsMateStorageNewsMapper.xml
@@ -214,6 +214,7 @@