产品报废

master
赵嘉伟 4 years ago
parent 631c4ad3e0
commit fb2e89d3fe

@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
@ -36,7 +37,7 @@ public interface AbnormalBillMapper extends BaseMapper<AbnormalBill> {
List<AbnormalBill> findCountBySfc(@Param("site")String site, @Param("type")String type, @Param("sfc")String sfc, @Param("status")List<String> status); List<AbnormalBill> findCountBySfc(@Param("site")String site, @Param("type")String type, @Param("sfc")String sfc, @Param("status")List<String> status);
String findAbnormalMethodBySFC(@Param("site")String site,@Param("abnormalBo")String abnormalBo,@Param("sfc")String sfc); Map<String,String> findAbnormalMethodBySFC(@Param("site")String site, @Param("abnormalBo")String abnormalBo, @Param("sfc")String sfc);
List<ScrapDto> findScrapDtoBySfc(@Param("site")String site, @Param("mainSfc")String mainSfc,@Param("splitSfc")List<SplitSfc> splitSfc); List<ScrapDto> findScrapDtoBySfc(@Param("site")String site, @Param("mainSfc")String mainSfc,@Param("splitSfc")List<SplitSfc> splitSfc);

@ -1149,7 +1149,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
} }
@Override @Override
public String jgProductionIsScrap(String abnormalNo,String site,String sfc) { public Map<String, String> jgProductionIsScrap(String abnormalNo, String site, String sfc) {
//查询该sfc在质量异常异常方案是否是报废,如果是则大于1 //查询该sfc在质量异常异常方案是否是报废,如果是则大于1
String abnormalBo = null; String abnormalBo = null;
if(!StringUtils.isBlank(abnormalNo)){ if(!StringUtils.isBlank(abnormalNo)){
@ -1164,7 +1164,13 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
site = CommonMethods.getSite(); site = CommonMethods.getSite();
} }
//根据用户提报上来的sfc和异常单查找主SFC //根据用户提报上来的sfc和异常单查找主SFC
String mainSfc = this.jgProductionIsScrap(abnormalNo, site, sfc); Map<String, String> map = this.jgProductionIsScrap(abnormalNo, site, sfc);
String mainSfc = null;
String abnormalBo = null;
if(map != null){
mainSfc = map.get("SFC");
abnormalBo = map.get("HANDLE");
}
List<SplitSfc> splitSfcs = null; List<SplitSfc> splitSfcs = null;
SplitSfc splitSfc = new SplitSfc(); SplitSfc splitSfc = new SplitSfc();
@ -1181,7 +1187,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
splitSfc.setSplitSfc(sfc); splitSfc.setSplitSfc(sfc);
splitSfcs = splitSfcService.selectList(splitSfc); splitSfcs = splitSfcService.selectList(splitSfc);
if(splitSfcs.size()>0){ if(splitSfcs.size()>0){
mainSfc = this.jgProductionIsScrap(abnormalNo, site, splitSfcs.get(0).getSfc()); Map<String, String> map1 = this.jgProductionIsScrap(abnormalNo, site, splitSfcs.get(0).getSfc());
mainSfc = map1.get("SFC");
abnormalBo = map1.get("HANDLE");
}else{ }else{
if(!StringUtil.isBlank(sfc) && !StringUtil.isBlank(abnormalNo)){ if(!StringUtil.isBlank(sfc) && !StringUtil.isBlank(abnormalNo)){
throw new BaseException("该异常单下的产品条码不是报废"); throw new BaseException("该异常单下的产品条码不是报废");
@ -1194,18 +1202,31 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
splitSfcs = splitSfcService.selectList(splitSfc); splitSfcs = splitSfcService.selectList(splitSfc);
} }
List<ScrapDto> scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, mainSfc,splitSfcs); List<ScrapDto> scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, mainSfc,splitSfcs);
//如果用户提报上来的sfc不为空并且不是主sfc则把主sfc从scrapDtoBySfc去掉 //如果用户提报上来的sfc不为空并且不是主sfc则把主sfc从scrapDtoBySfc去掉
if(!StringUtil.isBlank(sfc) && !sfc.equals(mainSfc)){ if(!StringUtil.isBlank(sfc) && !sfc.equals(mainSfc)){
for(ScrapDto scrap:scrapDtoBySfc){ for (int i = 0; i < scrapDtoBySfc.size(); i++) {
if(scrap.getSfc().equals(mainSfc)){ if(scrapDtoBySfc.get(i).getSfc().equals(mainSfc)){
scrapDtoBySfc.remove(scrap); scrapDtoBySfc.remove(scrapDtoBySfc.get(i));
break; continue;
} }
} }
} }
if(scrapDtoBySfc.size() <= 0){ if(scrapDtoBySfc.size() <= 0){
throw new BaseException("该产品条码的异常方案不是报废"); throw new BaseException("该产品条码的异常方案不是报废");
} }
//查找到责任人,放到表里
AbnormalBillDispose abnormalBillDispose = new AbnormalBillDispose();
abnormalBillDispose.setAbnormalBillBo(abnormalBo);
List<AbnormalBillDispose> abnormalBillDisposes = abnormalBillDisposeService.selectList(abnormalBillDispose);
if(abnormalBillDisposes.size() > 0){
for (int i = 0; i < scrapDtoBySfc.size(); i++) {
scrapDtoBySfc.get(i).setDutyUser(abnormalBillDisposes.get(0).getPrincipalUser());
}
}
return scrapDtoBySfc; return scrapDtoBySfc;
} }

@ -1081,8 +1081,8 @@
</where> </where>
</select> </select>
<select id="findAbnormalMethodBySFC" resultType="String"> <select id="findAbnormalMethodBySFC" resultType="map">
SELECT zabv.SFC SELECT zabv.SFC SFC,zabv.HANDLE HANDLE
FROM Z_ABNORMAL_BILL_VIEW zabv FROM Z_ABNORMAL_BILL_VIEW zabv
INNER JOIN (SELECT MAX(ZAB.HANDLE) HANDLE FROM Z_ABNORMAL_BILL_VIEW ZAB WHERE INNER JOIN (SELECT MAX(ZAB.HANDLE) HANDLE FROM Z_ABNORMAL_BILL_VIEW ZAB WHERE
ZAB.SITE = #{site} ZAB.SITE = #{site}

@ -26,6 +26,8 @@ public class ScrapDto {
private String type; private String type;
private String dutyUser;
public String getSfc() { public String getSfc() {
return sfc; return sfc;
} }
@ -105,4 +107,12 @@ public class ScrapDto {
public void setType(String type) { public void setType(String type) {
this.type = type; this.type = type;
} }
public String getDutyUser() {
return dutyUser;
}
public void setDutyUser(String dutyUser) {
this.dutyUser = dutyUser;
}
} }

@ -3,6 +3,7 @@ package com.foreverwin.mesnac.common.service;
import com.foreverwin.mesnac.common.dto.ScrapDto; import com.foreverwin.mesnac.common.dto.ScrapDto;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Description TODO * @Description TODO
@ -31,7 +32,7 @@ public interface AnomalyService {
* @param sfc * @param sfc
* @return * @return
*/ */
String jgProductionIsScrap(String abnormalNo,String site,String sfc); Map<String, String> jgProductionIsScrap(String abnormalNo, String site, String sfc);
/** /**
* *

@ -85,6 +85,11 @@ public class SfcScrap extends Model<SfcScrap> {
@TableField("MODIFIED_DATE_TIME") @TableField("MODIFIED_DATE_TIME")
private LocalDateTime modifiedDateTime; private LocalDateTime modifiedDateTime;
@TableField("DUTY_USER")
private String dutyUser;
public String getHandle() { public String getHandle() {
return handle; return handle;
@ -182,7 +187,15 @@ public class SfcScrap extends Model<SfcScrap> {
this.modifiedDateTime = modifiedDateTime; this.modifiedDateTime = modifiedDateTime;
} }
public static final String HANDLE = "HANDLE"; public String getDutyUser() {
return dutyUser;
}
public void setDutyUser(String dutyUser) {
this.dutyUser = dutyUser;
}
public static final String HANDLE = "HANDLE";
public static final String SITE = "SITE"; public static final String SITE = "SITE";

@ -152,13 +152,14 @@ public class SfcScrapServiceImpl extends ServiceImpl<SfcScrapMapper, SfcScrap> i
throw new BaseException("该sfc的数量为0不能报废"); throw new BaseException("该sfc的数量为0不能报废");
} }
sfcScrap.setQty(sfc.getQty()); sfcScrap.setQty(sfc.getQty());
sfcScrap.setDutyUser(sfcScraps.getDutyUser());
sfcScrap.setCreatedUser(user); sfcScrap.setCreatedUser(user);
sfcScrap.setCreatedDateTime(now); sfcScrap.setCreatedDateTime(now);
sfcScrap.setModifiedUser(user); sfcScrap.setModifiedUser(user);
sfcScrap.setModifiedDateTime(now); sfcScrap.setModifiedDateTime(now);
//向生产派工那边发送数据 //向生产派工那边发送数据
//podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty()),BigDecimal.valueOf(0L)); podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty()),BigDecimal.valueOf(0L));
try{ try{
//调用mes公共接口报废 //调用mes公共接口报废

@ -431,20 +431,22 @@
</delete> </delete>
<!-- BaseMapper标准查询/修改/删除 --> <!-- BaseMapper标准查询/修改/删除 -->
<select id="generatorWord" resultType="hashmap"> <select id="generatorWord" resultType="hashmap">
SELECT DISTINCT NVL(WCT.DESCRIPTION,' ') WORK_CENTER,NVL(WO.VALUE,' ') WORK_ORDER,NVL(WO2.VALUE,' ') DWG_NO,NVL(ZSS.QTY,0) QTY,NVL(ZSS.OPERATION,' ') OPERATION, SELECT DISTINCT NVL(WCT.DESCRIPTION,' ') WORK_CENTER,NVL(WO.VALUE,' ') WORK_ORDER,NVL(WO2.VALUE,' ') DWG_NO,NVL(ZSS.QTY,0) QTY,NVL(OT.DESCRIPTION,' ') OPERATION,
NVL(ZSS.REASON,' ') REASON,NVL(ZSS."TYPE",' ') "TYPE", NVL(ZSS.REASON,' ') REASON,NVL(ZSS."TYPE",' ') "TYPE",
CASE WHEN I1.VALUE != NULL THEN NVL(I1.VALUE * I.QTY_MULTIPLIER,0) CASE WHEN I1.VALUE != NULL THEN NVL(I1.VALUE * I.QTY_MULTIPLIER,0)
WHEN I2.VALUE != NULL THEN NVL(I2.VALUE * I.QTY_MULTIPLIER,0) WHEN I2.VALUE != NULL THEN NVL(I2.VALUE * I.QTY_MULTIPLIER,0)
ELSE NVL(I.QTY_MULTIPLIER,0) END WEIGHT,NVL(I.ITEM,' ') ITEM,NVL(S.SFC,' ') SFC,NVL(it.DESCRIPTION,' ') ITEM_DESCRIPTION, ELSE NVL(I.QTY_MULTIPLIER,0) END WEIGHT,NVL(I.ITEM,' ') ITEM,NVL(S.SFC,' ') SFC,NVL(it.DESCRIPTION,' ') ITEM_DESCRIPTION,
NVL(SO.SHOP_ORDER,' ') SHOP_ORDER NVL(SO.SHOP_ORDER,' ') SHOP_ORDER,NVL(ZSS.DUTY_USER,' ') DUTY_USER
FROM FROM
SHOP_ORDER SO SHOP_ORDER SO
LEFT JOIN WORK_CENTER WC ON SO.PLANNED_WORK_CENTER_BO = WC.HANDLE LEFT JOIN WORK_CENTER WC ON SO.PLANNED_WORK_CENTER_BO = WC.HANDLE
LEFT JOIN WORK_CENTER_T WCT ON WCT.WORK_CENTER_BO = WC.HANDLE AND WCT.LOCALE = 'zh' LEFT JOIN WORK_CENTER_T WCT ON WCT.WORK_CENTER_BO = WC.HANDLE AND WCT.LOCALE = #{locale}
LEFT JOIN CUSTOM_FIELDS WO ON WO.HANDLE = SO.HANDLE AND WO."ATTRIBUTE" = 'WORK_ORDER' LEFT JOIN CUSTOM_FIELDS WO ON WO.HANDLE = SO.HANDLE AND WO."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN CUSTOM_FIELDS WO2 ON WO2.HANDLE = SO.PLANNED_ITEM_BO AND WO2."ATTRIBUTE" = 'DWG_NO' LEFT JOIN CUSTOM_FIELDS WO2 ON WO2.HANDLE = SO.PLANNED_ITEM_BO AND WO2."ATTRIBUTE" = 'DWG_NO'
INNER JOIN SFC S ON S.SFC = #{sfc} AND S.SITE = #{site} INNER JOIN SFC S ON S.SFC = #{sfc} AND S.SITE = #{site}
LEFT JOIN Z_SFC_SCRAP ZSS ON ZSS.SFC = S.SFC LEFT JOIN Z_SFC_SCRAP ZSS ON ZSS.SFC = S.SFC
LEFT JOIN OPERATION O ON O.OPERATION = ZSS.OPERATION AND O.SITE = SO.SITE
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = #{locale}
LEFT JOIN ITEM I ON I.HANDLE = SO.PLANNED_ITEM_BO LEFT JOIN ITEM I ON I.HANDLE = SO.PLANNED_ITEM_BO
LEFT JOIN ITEM_T it ON it.ITEM_BO = I.HANDLE AND it.LOCALE = #{locale} LEFT JOIN ITEM_T it ON it.ITEM_BO = I.HANDLE AND it.LOCALE = #{locale}
LEFT JOIN CUSTOM_FIELDS I1 ON I1.HANDLE = I.HANDLE AND I1."ATTRIBUTE" = 'PER_METER' LEFT JOIN CUSTOM_FIELDS I1 ON I1.HANDLE = I.HANDLE AND I1."ATTRIBUTE" = 'PER_METER'

Loading…
Cancel
Save