aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateProcessStatController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,108 @@ package com.aps.core.controller.mainPlan; import java.util.List; import java.io.IOException; import jakarta.servlet.http.HttpServletResponse; 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.aps.common.log.annotation.Log; import com.aps.common.log.enums.BusinessType; import com.aps.common.security.annotation.RequiresPermissions; import com.aps.core.domain.ApsPlateProcessStat; import com.aps.core.service.IApsPlateProcessStatService; import com.aps.common.core.web.controller.BaseController; import com.aps.common.core.web.domain.AjaxResult; import com.aps.common.core.utils.poi.ExcelUtil; import com.aps.common.core.web.page.TableDataInfo; /** * é£éç»è®¡Controller * * @author zhl * @date 2025-04-15 */ @RestController @RequestMapping("/plateProcessStat") public class ApsPlateProcessStatController extends BaseController { @Autowired private IApsPlateProcessStatService apsPlateProcessStatService; /** * 导åºé£éç»è®¡å表 */ @RequiresPermissions("apsPlateProcessStat:export") @Log(title = "é£éç»è®¡", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsPlateProcessStat apsPlateProcessStat) { List<ApsPlateProcessStat> list = apsPlateProcessStatService.selectApsPlateProcessStatList(apsPlateProcessStat); ExcelUtil<ApsPlateProcessStat> util = new ExcelUtil<ApsPlateProcessStat>(ApsPlateProcessStat.class); util.exportExcel(response, list, "é£éç»è®¡æ°æ®"); } /** * è·åé£éç»è®¡è¯¦ç»ä¿¡æ¯ */ @RequiresPermissions("apsPlateProcessStat:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(apsPlateProcessStatService.selectApsPlateProcessStatById(id)); } /** * æ°å¢é£éç»è®¡ */ @RequiresPermissions("apsPlateProcessStat:add") @Log(title = "é£éç»è®¡", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ApsPlateProcessStat apsPlateProcessStat) { return toAjax(apsPlateProcessStatService.insertApsPlateProcessStat(apsPlateProcessStat)); } /** * å é¤é£éç»è®¡ */ @RequiresPermissions("apsPlateProcessStat:remove") @Log(title = "é£éç»è®¡", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(apsPlateProcessStatService.deleteApsPlateProcessStatByIds(ids)); } /** * ä¿®æ¹é£éç»è®¡ */ /*@RequiresPermissions("apsPlateProcessStat:edit")*/ @Log(title = "é£éç»è®¡", businessType = BusinessType.UPDATE) @PostMapping("/update") public AjaxResult updateStat() { apsPlateProcessStatService.savePlateProcessStat(); return toAjax(true); } /** * æ¥è¯¢é£éç»è®¡å表 */ /*@RequiresPermissions("apsPlateProcessStat:list")*/ @GetMapping("/list") public TableDataInfo list(ApsPlateProcessStat apsPlateProcessStat) { List<ApsPlateProcessStat> list = apsPlateProcessStatService.selectApsPlateProcessStatList(apsPlateProcessStat); return getDataTable(list); } } aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamController.java
@@ -38,7 +38,7 @@ /** * æ¥è¯¢çç¼å表 */ @RequiresPermissions("weldSeam:weldSeam:list") // @RequiresPermissions("weldSeam:weldSeam:list") @GetMapping("/list") public TableDataInfo list(ApsWeldSeam apsWeldSeam) { // startPage(); @@ -131,23 +131,25 @@ //åç±» List<SysDictData> list = DictUtils.getDictCache("aps_weld_classification"); for (int i = 0; i < apsWeldSeamTemps.size(); i++) { ApsWeldSeamTemp apsWeldSeamTemp = apsWeldSeamTemps.get(i); //åç±» for (int j = 0; j < list.size(); j++) { if (apsWeldSeamTemps.get(i).getClassificationTxt().equals(list.get(j).getDictLabel())) { apsWeldSeamTemps.get(i).setClassification(list.get(j).getDictValue()); if (apsWeldSeamTemp.getClassificationTxt().equals(list.get(j).getDictLabel())) { apsWeldSeamTemp.setClassification(list.get(j).getDictValue()); } } //å·¥åç±»å for (int j = 0; j < listTypes.size(); j++) { if (apsWeldSeamTemps.get(i).getWorkOrderTypeTxt().equals(listTypes.get(j).getDictLabel())) { apsWeldSeamTemps.get(i).setWorkOrderType(listTypes.get(j).getDictValue()); if (apsWeldSeamTemp.getWorkOrderTypeTxt().equals(listTypes.get(j).getDictLabel())) { apsWeldSeamTemp.setWorkOrderType(listTypes.get(j).getDictValue()); } } //æå ¥çæ¬å· apsWeldSeamTemps.get(i).setBatchNumber(batchNum); apsWeldSeamTemp.setBatchNumber(batchNum); //æå ¥ä¸´æ¶è¡¨ apsWeldSeamTemps.get(i).setTotalWeldSeam(apsWeldSeamTemps.get(i).getSingleWeldSeam().longValue()*apsWeldSeamTemps.get(i).getProductionQuantity().longValue()); apsWeldSeamTempService.insertApsWeldSeamTemp(apsWeldSeamTemps.get(i)); apsWeldSeamTemp.setTotalWeldSeam(apsWeldSeamTemp.getSingleWeldSeam().longValue()* apsWeldSeamTemp.getProductionQuantity().longValue()); apsWeldSeamTempService.insertApsWeldSeamTemp(apsWeldSeamTemp); } return AjaxResult.success("å¯¼å ¥æå", batchNum); aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamTempController.java
@@ -2,6 +2,8 @@ import java.util.List; import com.aps.common.security.utils.DictUtils; import com.aps.system.api.domain.SysDictData; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -44,6 +46,18 @@ { // startPage(); List<ApsWeldSeamTemp> list = apsWeldSeamTempService.selectApsWeldSeamTempList(apsWeldSeamTemp); //å·¥åç±»å List<SysDictData> workOrderTypes = DictUtils.getDictCache("aps_weld_work_order_type"); //åç±» List<SysDictData> classification = DictUtils.getDictCache("aps_weld_classification"); list.forEach(tmp->{ classification.stream().filter(t->t.getDictValue().equals(tmp.getClassification())) .findFirst().ifPresent(t->{ tmp.setClassification(t.getDictLabel());}) ; workOrderTypes.stream().filter(t->t.getDictValue().equals(tmp.getWorkOrderType())) .findFirst().ifPresent(t->{ tmp.setWorkOrderType(t.getDictLabel());}) ; }); return getDataTable(list); } aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateProcessStat.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,264 @@ package com.aps.core.domain; import java.math.BigDecimal; import java.time.LocalDateTime; 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.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; /** * é£éç»è®¡å¯¹è±¡ aps_plate_process_stat * * @author zhl * @date 2025-04-15 */ public class ApsPlateProcessStat extends BaseEntity { private static final long serialVersionUID = 1L; /** 主é®id */ private String id; /** å·¥åå· */ @Excel(name = "å·¥åå·") private String workOrderNo; /** å·¥åºåç§° */ @Excel(name = "å·¥åºåç§°") private String processName; /** æåº */ @Excel(name = "æåº") private Integer num; /** å·¥åºå· */ @Excel(name = "å·¥åºå·") private BigDecimal routeProcessNumber; /** å½åå·¥åºå· */ @Excel(name = "å½åå·¥åºå·") private BigDecimal currentProcessNumber; /** ç产æ°é */ @Excel(name = "ç产æ°é") private Integer productionQuantity; /** æ åå·¥æ¶ */ @Excel(name = "æ åå·¥æ¶") private Integer standardTime; /** å·¥åºæ»å·¥æ¶ */ @Excel(name = "å·¥åºæ»å·¥æ¶") private Integer processTotalTime; /** 计åå®ææ¥ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "计å宿æ¥", width = 30, dateFormat = "yyyy-MM-dd") private Date processPlanEndDay; /** 计ç®å®ææ¥ */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "计ç®å®ææ¥", width = 30, dateFormat = "yyyy-MM-dd") private Date computePlanEndDay; /** 计åå¼å·¥æ¥ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "计åå¼å·¥æ¥", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date processPlanStartDay; /** 订åå¼å·¥æ¥ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "订åå¼å·¥æ¥", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date orderPlanEndDay; /** è®¾è®¡å·¥æ¶ */ @Excel(name = "设计工æ¶") private Long designTimes; /** æ¹æ¬¡å· */ @Excel(name = "æ¹æ¬¡å·") private String batchNumber; /** å 餿 å¿ï¼0代表åå¨ 2代表å é¤ï¼ */ private String delFlag; public void setId(String id) { this.id = id; } public String getId() { return id; } public void setWorkOrderNo(String workOrderNo) { this.workOrderNo = workOrderNo; } public String getWorkOrderNo() { return workOrderNo; } public void setProcessName(String processName) { this.processName = processName; } public String getProcessName() { return processName; } public void setNum(Integer num) { this.num = num; } public Integer getNum() { return num; } public void setRouteProcessNumber(BigDecimal routeProcessNumber) { this.routeProcessNumber = routeProcessNumber; } public BigDecimal getRouteProcessNumber() { return routeProcessNumber; } public void setCurrentProcessNumber(BigDecimal currentProcessNumber) { this.currentProcessNumber = currentProcessNumber; } public BigDecimal getCurrentProcessNumber() { return currentProcessNumber; } public void setProductionQuantity(Integer productionQuantity) { this.productionQuantity = productionQuantity; } public Integer getProductionQuantity() { return productionQuantity; } public void setStandardTime(Integer standardTime) { this.standardTime = standardTime; } public Integer getStandardTime() { return standardTime; } public void setProcessTotalTime(Integer processTotalTime) { this.processTotalTime = processTotalTime; } public Integer getProcessTotalTime() { return processTotalTime; } public void setProcessPlanEndDay(Date processPlanEndDay) { this.processPlanEndDay = processPlanEndDay; } public Date getProcessPlanEndDay() { return processPlanEndDay; } public void setComputePlanEndDay(Date computePlanEndDay) { this.computePlanEndDay = computePlanEndDay; } public Date getComputePlanEndDay() { return computePlanEndDay; } public void setDesignTimes(Long designTimes) { this.designTimes = designTimes; } public Long getDesignTimes() { return designTimes; } public void setBatchNumber(String batchNumber) { this.batchNumber = batchNumber; } public String getBatchNumber() { return batchNumber; } public Date getProcessPlanStartDay() { return processPlanStartDay; } public void setProcessPlanStartDay(Date processPlanStartDay) { this.processPlanStartDay = processPlanStartDay; } public Date getOrderPlanEndDay() { return orderPlanEndDay; } public void setOrderPlanEndDay(Date orderPlanEndDay) { this.orderPlanEndDay = orderPlanEndDay; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getDelFlag() { return delFlag; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("workOrderNo", getWorkOrderNo()) .append("processName", getProcessName()) .append("num", getNum()) .append("routeProcessNumber", getRouteProcessNumber()) .append("currentProcessNumber", getCurrentProcessNumber()) .append("productionQuantity", getProductionQuantity()) .append("standardTime", getStandardTime()) .append("processTotalTime", getProcessTotalTime()) .append("processPlanEndDay", getProcessPlanEndDay()) .append("computePlanEndDay", getComputePlanEndDay()) .append("designTimes", getDesignTimes()) .append("batchNumber", getBatchNumber()) .append("createBy", getCreateBy()) .append("delFlag", getDelFlag()) .toString(); } } aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateProcessStatMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,74 @@ package com.aps.core.mapper; import java.util.List; import com.aps.core.domain.ApsPlateProcessStat; import org.apache.ibatis.annotations.Mapper; /** * é£éç»è®¡Mapperæ¥å£ * * @author zhl * @date 2025-04-15 */ @Mapper public interface ApsPlateProcessStatMapper { /** * æ¥è¯¢é£éç»è®¡ * * @param id é£éç»è®¡ä¸»é® * @return é£éç»è®¡ */ public ApsPlateProcessStat selectApsPlateProcessStatById(String id); /** * æ¥è¯¢é£éç»è®¡å表 * * @param apsPlateProcessStat é£éç»è®¡ * @return é£éç»è®¡éå */ public List<ApsPlateProcessStat> selectApsPlateProcessStatList(ApsPlateProcessStat apsPlateProcessStat); /** * æ°å¢é£éç»è®¡ * * @param apsPlateProcessStat é£éç»è®¡ * @return ç»æ */ public int insertApsPlateProcessStat(ApsPlateProcessStat apsPlateProcessStat); /** * ä¿®æ¹é£éç»è®¡ * * @param apsPlateProcessStat é£éç»è®¡ * @return ç»æ */ public int updateApsPlateProcessStat(ApsPlateProcessStat apsPlateProcessStat); /** * å é¤é£éç»è®¡ * * @param id é£éç»è®¡ä¸»é® * @return ç»æ */ public int deleteApsPlateProcessStatById(String id); /** * æ¹éå é¤é£éç»è®¡ * * @param ids éè¦å é¤çæ°æ®ä¸»é®éå * @return ç»æ */ public int deleteApsPlateProcessStatByIds(String[] ids); /**ç»è®¡ä¸´æ¶æ°æ®*/ List<ApsPlateProcessStat> queryTempStat(); /** * å é¤å½åæ¹æ¬¡ä¹å¤çæ°æ® */ int removeOtherStat(String batchNumber); /** * æ¹éæå ¥æ°æ® * */ int batchInsertPlateStat(List<ApsPlateProcessStat> list); } aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlateProcessStatService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.aps.core.service; import java.util.List; import com.aps.core.domain.ApsPlateProcessStat; import org.springframework.transaction.annotation.Transactional; /** * é£éç»è®¡Serviceæ¥å£ * * @author zhl * @date 2025-04-15 */ public interface IApsPlateProcessStatService { /** * æ¥è¯¢é£éç»è®¡ * * @param id é£éç»è®¡ä¸»é® * @return é£éç»è®¡ */ public ApsPlateProcessStat selectApsPlateProcessStatById(String id); /** * æ¥è¯¢é£éç»è®¡å表 * * @param apsPlateProcessStat é£éç»è®¡ * @return é£éç»è®¡éå */ public List<ApsPlateProcessStat> selectApsPlateProcessStatList(ApsPlateProcessStat apsPlateProcessStat); /** * æ°å¢é£éç»è®¡ * * @param apsPlateProcessStat é£éç»è®¡ * @return ç»æ */ public int insertApsPlateProcessStat(ApsPlateProcessStat apsPlateProcessStat); /** * ä¿®æ¹é£éç»è®¡ * * @param apsPlateProcessStat é£éç»è®¡ * @return ç»æ */ public int updateApsPlateProcessStat(ApsPlateProcessStat apsPlateProcessStat); /** * æ¹éå é¤é£éç»è®¡ * * @param ids éè¦å é¤çé£éç»è®¡ä¸»é®éå * @return ç»æ */ public int deleteApsPlateProcessStatByIds(String[] ids); /** * å é¤é£éç»è®¡ä¿¡æ¯ * * @param id é£éç»è®¡ä¸»é® * @return ç»æ */ public int deleteApsPlateProcessStatById(String id); @Transactional void savePlateProcessStat(); } aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateProcessStatServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,164 @@ package com.aps.core.service.impl; import java.time.*; import java.util.Date; import java.util.List; import java.util.Map; import com.aps.common.core.utils.uuid.IdUtils; import com.aps.common.security.utils.SecurityUtils; import org.apache.commons.lang3.SystemUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateProcessStatMapper; import com.aps.core.domain.ApsPlateProcessStat; import com.aps.core.service.IApsPlateProcessStatService; import org.springframework.transaction.annotation.Transactional; import static java.util.stream.Collectors.groupingBy; /** * é£éç»è®¡Serviceä¸å¡å±å¤ç * * @author zhl * @date 2025-04-15 */ @Service public class ApsPlateProcessStatServiceImpl implements IApsPlateProcessStatService { @Autowired private ApsPlateProcessStatMapper apsPlateProcessStatMapper; /** * æ¥è¯¢é£éç»è®¡ * * @param id é£éç»è®¡ä¸»é® * @return é£éç»è®¡ */ @Override public ApsPlateProcessStat selectApsPlateProcessStatById(String id) { return apsPlateProcessStatMapper.selectApsPlateProcessStatById(id); } /** * æ¥è¯¢é£éç»è®¡å表 * * @param apsPlateProcessStat é£éç»è®¡ * @return é£éç»è®¡ */ @Override public List<ApsPlateProcessStat> selectApsPlateProcessStatList(ApsPlateProcessStat apsPlateProcessStat) { return apsPlateProcessStatMapper.selectApsPlateProcessStatList(apsPlateProcessStat); } /** * æ°å¢é£éç»è®¡ * * @param apsPlateProcessStat é£éç»è®¡ * @return ç»æ */ @Override public int insertApsPlateProcessStat(ApsPlateProcessStat apsPlateProcessStat) { return apsPlateProcessStatMapper.insertApsPlateProcessStat(apsPlateProcessStat); } /** * ä¿®æ¹é£éç»è®¡ * * @param apsPlateProcessStat é£éç»è®¡ * @return ç»æ */ @Override public int updateApsPlateProcessStat(ApsPlateProcessStat apsPlateProcessStat) { return apsPlateProcessStatMapper.updateApsPlateProcessStat(apsPlateProcessStat); } /** * æ¹éå é¤é£éç»è®¡ * * @param ids éè¦å é¤çé£éç»è®¡ä¸»é® * @return ç»æ */ @Override public int deleteApsPlateProcessStatByIds(String[] ids) { return apsPlateProcessStatMapper.deleteApsPlateProcessStatByIds(ids); } /** * å é¤é£éç»è®¡ä¿¡æ¯ * * @param id é£éç»è®¡ä¸»é® * @return ç»æ */ @Override public int deleteApsPlateProcessStatById(String id) { return apsPlateProcessStatMapper.deleteApsPlateProcessStatById(id); } /** * ä¿åé£éç»è®¡æ°æ® */ @Transactional @Override public void savePlateProcessStat() { String batchNum = IdUtils.fastSimpleUUID(); List<ApsPlateProcessStat> tempList = apsPlateProcessStatMapper.queryTempStat(); Map<String, List<ApsPlateProcessStat>> groupByOrderNo = tempList.stream().collect(groupingBy(ApsPlateProcessStat::getWorkOrderNo)); for (Map.Entry<String, List<ApsPlateProcessStat>> entry : groupByOrderNo.entrySet()) { List<ApsPlateProcessStat> statPerOrder = entry.getValue(); /*num ä¸ºæ ¹æ®å®å·¥æ¶é´æåºåºçåºå·ï¼ææ¤æåºï¼å¯ä¿è¯æ¯æå®å·¥æ¶é´ååæå*/ statPerOrder.sort((a, b)->a.getNum().compareTo(b.getNum())); ApsPlateProcessStat last=null; for (int i = 0; i <statPerOrder.size(); i++) { ApsPlateProcessStat stat = statPerOrder.get(i); stat.setId(IdUtils.fastSimpleUUID()); stat.setBatchNumber(batchNum); stat.setCreateBy(SecurityUtils.getUsername()); if(i==0){ Date orderPlanEndDay = stat.getOrderPlanEndDay(); LocalDateTime transLocalDateTime = transLocalDateTime(orderPlanEndDay); LocalTime endOfDay = LocalTime.of(23, 59, 59); LocalDateTime orderPlanEndDayLocalDateTime = LocalDateTime.of( transLocalDateTime.toLocalDate(), endOfDay); /*计åå®å·¥æ¥=é£é计åå·¥å宿æ¶é´*/ stat.setProcessPlanEndDay(transDate(orderPlanEndDayLocalDateTime)); /*计åå¼å·¥æ¥=é£é计åå·¥å宿æ¶é´ - å·¥åºæ»å·¥æ¶*/ stat.setProcessPlanStartDay(transDate(orderPlanEndDayLocalDateTime.minusHours(stat.getProcessTotalTime()))); } /*å½å·¥èºå·¥åºå· > å·¥åå½åå·¥åºæ¶ï¼ä»£è¡¨æ¯æªæ¥çå·¥åºï¼æè¿è¡è®¡åå¼å·¥æ¥ å计åå®å·¥æ¥ç计ç®*/ if( stat.getRouteProcessNumber().compareTo(stat.getCurrentProcessNumber())>0){ /*&计åå¼å·¥æ¥ å 计åå®ææ¥ ï¼åæ¶å¤§äºå½åæ¥ææ¶æ§è¡è®¡ç®*/ LocalDateTime currentEndDay = transLocalDateTime(stat.getProcessPlanEndDay()); LocalDateTime currentStartDay = transLocalDateTime(stat.getProcessPlanStartDay()); if(currentEndDay.isAfter(LocalDateTime.now()) && currentStartDay.isAfter(LocalDateTime.now())){ if(last!=null){ /*æªå¼å·¥å·¥åºç计åå¼å·¥æ¥=ä¸ä¸éå·¥åºç计åå¼å·¥æ¥+ä¸ä¸éå·¥åºçå·¥åºæ»å·¥æ¶ã*/ stat.setProcessPlanEndDay(last.getProcessPlanStartDay()); stat.setProcessPlanStartDay(transDate(transLocalDateTime(last.getProcessPlanStartDay()).minusHours(stat.getProcessTotalTime()) )); } } } last = stat; apsPlateProcessStatMapper.insertApsPlateProcessStat(stat); } } apsPlateProcessStatMapper.removeOtherStat(batchNum); } private Date transDate(LocalDateTime localDateTime){ return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); } private LocalDateTime transLocalDateTime(Date date){ return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); } } aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsWeldSeamServiceImpl.java
@@ -114,7 +114,7 @@ //éè¿å·¥åå·æ¥è¯¢æ¯å¦å卿°æ® ApsWeldSeam apsWeldSeam1 = apsWeldSeamMapper.selectApsWeldSeamByWorkOrderNo(apsWeldSeam.getWorkOrderNo()); //å½å·¥åå·åå¨åæ´æ°æ°æ®å¦åæå ¥æ°æ® if (ObjectUtils.isNotEmpty(apsWeldSeam1)) { if (apsWeldSeam1!=null&&apsWeldSeam1.getId()!=null) { apsWeldSeam.setId(apsWeldSeam1.getId()); apsWeldSeamMapper.updateApsWeldSeam(apsWeldSeam); } else { aps-modules/aps-core/src/main/resources/mapper/core/ApsPlateProcessStatMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,185 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.aps.core.mapper.ApsPlateProcessStatMapper"> <resultMap type="ApsPlateProcessStat" id="ApsPlateProcessStatResult"> <result property="id" column="id" /> <result property="workOrderNo" column="work_order_no" /> <result property="processName" column="process_name" /> <result property="num" column="num" /> <result property="routeProcessNumber" column="route_process_number" /> <result property="currentProcessNumber" column="current_process_number" /> <result property="productionQuantity" column="production_quantity" /> <result property="standardTime" column="standard_time" /> <result property="processTotalTime" column="process_total_time" /> <result property="processPlanEndDay" column="process_plan_end_day" /> <result property="computePlanEndDay" column="compute_plan_end_day" /> <result property="processPlanStartDay" column="process_plan_start_day" /> <result property="orderPlanEndDay" column="order_plan_end_day" /> <result property="designTimes" column="design_times" /> <result property="batchNumber" column="batch_number" /> <result property="createBy" column="create_by" /> <result property="delFlag" column="del_flag" /> </resultMap> <sql id="selectApsPlateProcessStatVo"> select id, work_order_no, process_name, num, route_process_number, current_process_number, production_quantity, standard_time, process_total_time, process_plan_end_day, compute_plan_end_day, design_times, batch_number, create_by, del_flag from aps_plate_process_stat </sql> <select id="selectApsPlateProcessStatList" parameterType="ApsPlateProcessStat" resultMap="ApsPlateProcessStatResult"> <include refid="selectApsPlateProcessStatVo"/> <where> <if test="workOrderNo != null and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if> <if test="processName != null and processName != ''"> and process_name like concat('%', #{processName}, '%')</if> <if test="num != null "> and num = #{num}</if> <if test="routeProcessNumber != null "> and route_process_number = #{routeProcessNumber}</if> <if test="currentProcessNumber != null "> and current_process_number = #{currentProcessNumber}</if> <if test="productionQuantity != null "> and production_quantity = #{productionQuantity}</if> <if test="standardTime != null "> and standard_time = #{standardTime}</if> <if test="processTotalTime != null "> and process_total_time = #{processTotalTime}</if> <if test="processPlanEndDay != null "> and process_plan_end_day = #{processPlanEndDay}</if> <if test="computePlanEndDay != null "> and compute_plan_end_day = #{computePlanEndDay}</if> <if test="designTimes != null "> and design_times = #{designTimes}</if> <if test="batchNumber != null and batchNumber != ''"> and batch_number = #{batchNumber}</if> </where> </select> <select id="selectApsPlateProcessStatById" parameterType="String" resultMap="ApsPlateProcessStatResult"> <include refid="selectApsPlateProcessStatVo"/> where id = #{id} </select> <insert id="insertApsPlateProcessStat" parameterType="ApsPlateProcessStat"> insert into aps_plate_process_stat <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="workOrderNo != null">work_order_no,</if> <if test="processName != null">process_name,</if> <if test="num != null">num,</if> <if test="routeProcessNumber != null">route_process_number,</if> <if test="currentProcessNumber != null">current_process_number,</if> <if test="productionQuantity != null">production_quantity,</if> <if test="standardTime != null">standard_time,</if> <if test="processTotalTime != null">process_total_time,</if> <if test="processPlanEndDay != null">process_plan_end_day,</if> <if test="processPlanStartDay != null">process_plan_start_day,</if> <if test="designTimes != null">design_times,</if> <if test="batchNumber != null">batch_number,</if> <if test="createBy != null">create_by,</if> <if test="delFlag != null">del_flag,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="workOrderNo != null">#{workOrderNo},</if> <if test="processName != null">#{processName},</if> <if test="num != null">#{num},</if> <if test="routeProcessNumber != null">#{routeProcessNumber},</if> <if test="currentProcessNumber != null">#{currentProcessNumber},</if> <if test="productionQuantity != null">#{productionQuantity},</if> <if test="standardTime != null">#{standardTime},</if> <if test="processTotalTime != null">#{processTotalTime},</if> <if test="processPlanEndDay != null">#{processPlanEndDay},</if> <if test="processPlanStartDay != null">#{processPlanStartDay},</if> <if test="designTimes != null">#{designTimes},</if> <if test="batchNumber != null">#{batchNumber},</if> <if test="createBy != null">#{createBy},</if> <if test="delFlag != null">#{delFlag},</if> </trim> </insert> <update id="updateApsPlateProcessStat" parameterType="ApsPlateProcessStat"> update aps_plate_process_stat <trim prefix="SET" suffixOverrides=","> <if test="workOrderNo != null">work_order_no = #{workOrderNo},</if> <if test="processName != null">process_name = #{processName},</if> <if test="num != null">num = #{num},</if> <if test="routeProcessNumber != null">route_process_number = #{routeProcessNumber},</if> <if test="currentProcessNumber != null">current_process_number = #{currentProcessNumber},</if> <if test="productionQuantity != null">production_quantity = #{productionQuantity},</if> <if test="standardTime != null">standard_time = #{standardTime},</if> <if test="processTotalTime != null">process_total_time = #{processTotalTime},</if> <if test="processPlanEndDay != null">process_plan_end_day = #{processPlanEndDay},</if> <if test="computePlanEndDay != null">compute_plan_end_day = #{computePlanEndDay},</if> <if test="designTimes != null">design_times = #{designTimes},</if> <if test="batchNumber != null">batch_number = #{batchNumber},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> </trim> where id = #{id} </update> <delete id="deleteApsPlateProcessStatById" parameterType="String"> delete from aps_plate_process_stat where id = #{id} </delete> <delete id="deleteApsPlateProcessStatByIds" parameterType="String"> delete from aps_plate_process_stat where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> <select id="queryTempStat" resultMap="ApsPlateProcessStatResult"> select row_number() over (partition by rt.work_order_no order by rt.process_number desc ) as num, rt.work_order_no, rt.process_name, cast(rt.process_number as numeric(18, 2)) as route_process_number, cast(pl.process_number as numeric(18, 2)) as current_process_number, pl.production_quantity, rt.standard_time, (rt.standard_time * pl.production_quantity) as process_total_time, rt.process_plan_start_day, rt.process_plan_end_day, pl.plan_end_day as order_plan_end_day from aps_plate_plan as pl left join aps_process_route as rt on pl.document_number = rt.work_order_no where pl.del_flag = '0' and rt.del_flag = '0' and (pl.document_status is not null and (pl.document_status != '3')) order by rt.work_order_no asc , rt.process_number desc </select> <update id="removeOtherStat" parameterType="String"> delete from aps_plate_process_stat where batch_number != #{batchNumber} </update> <insert id="batchInsertPlateStat" parameterType="ApsPlateProcessStat"> insert into aps_plate_process_stat ( id, work_order_no, process_name, num, route_process_number, current_process_number, production_quantity, standard_time, process_total_time, process_plan_end_day, batch_number, create_by, del_flag ) values <foreach collection="list" item="item" index="index" separator=","> ( #{item.id}, #{item.workOrderNo}, #{item.processName}, #{item.num}, #{item.routeProcessNumber}, #{item.currentProcessNumber}, #{item.productionQuantity}, #{item.standardTime}, #{item.processTotalTime}, #{item.processPlanEndDay}, #{item.batchNumber}, #{item.createBy}, '0' ) </foreach> </insert> </mapper>