产品报废

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

@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* <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);
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);

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

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

@ -26,6 +26,8 @@ public class ScrapDto {
private String type;
private String dutyUser;
public String getSfc() {
return sfc;
}
@ -105,4 +107,12 @@ public class ScrapDto {
public void setType(String 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 java.util.List;
import java.util.Map;
/**
* @Description TODO
@ -31,7 +32,7 @@ public interface AnomalyService {
* @param sfc
* @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")
private LocalDateTime modifiedDateTime;
@TableField("DUTY_USER")
private String dutyUser;
public String getHandle() {
return handle;
@ -182,6 +187,14 @@ public class SfcScrap extends Model<SfcScrap> {
this.modifiedDateTime = modifiedDateTime;
}
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";

@ -152,13 +152,14 @@ public class SfcScrapServiceImpl extends ServiceImpl<SfcScrapMapper, SfcScrap> i
throw new BaseException("该sfc的数量为0不能报废");
}
sfcScrap.setQty(sfc.getQty());
sfcScrap.setDutyUser(sfcScraps.getDutyUser());
sfcScrap.setCreatedUser(user);
sfcScrap.setCreatedDateTime(now);
sfcScrap.setModifiedUser(user);
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{
//调用mes公共接口报废

@ -431,20 +431,22 @@
</delete>
<!-- BaseMapper标准查询/修改/删除 -->
<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",
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)
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
SHOP_ORDER SO
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 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}
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_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'

Loading…
Cancel
Save