diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java
index 83ccdbc6..ce4ac105 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java
@@ -220,7 +220,7 @@ public class AbnormalBillController {
try{
return R.ok(abnormalBillService.anomalyReport(abnormalBill, abnormalBillDispose,ncGroupAndNcCodes,dutyCauseType,dutyType));
}catch(Exception e){
- return R.failed("质量异常提报失败,"+e.getMessage());
+ return R.failed("质量异常提报失败:"+e.getMessage());
}
}
@@ -234,7 +234,7 @@ public class AbnormalBillController {
try{
return R.ok(abnormalBillService.anomalyReportDevice(abnormalBill,abnormalBillDispose));
}catch (Exception e){
- return R.failed("设备异常提报失败,"+e.getMessage());
+ return R.failed("设备异常提报失败:"+e.getMessage());
}
}
@@ -251,7 +251,7 @@ public class AbnormalBillController {
try{
return R.ok( abnormalBillService.cancelBrowse(handle,cancelBrowse,code,cancelSendUserGroup));
}catch(Exception e){
- return R.failed("取消失败,"+e.getMessage());
+ return R.failed("取消失败:"+e.getMessage());
}
}
@@ -260,7 +260,7 @@ public class AbnormalBillController {
try{
return R.ok(abnormalBillService.backLog(abnormalBillDto));
}catch(Exception e){
- return R.failed("检索失败,"+e.getMessage());
+ return R.failed("检索失败:"+e.getMessage());
}
}
@@ -275,7 +275,7 @@ public class AbnormalBillController {
try{
return R.ok(abnormalBillService.findAllByAbnormalNo(abnormalBill));
}catch (Exception e){
- return R.failed("检索失败,"+e.getMessage());
+ return R.failed("检索失败:"+e.getMessage());
}
}
@@ -288,7 +288,7 @@ public class AbnormalBillController {
try{
return R.ok(abnormalBillService.findAllByAbnormalNoDevice(abnormalBill));
}catch (Exception e){
- return R.failed("设备异常响应检索失败,"+e.getMessage());
+ return R.failed("设备异常响应检索失败:"+e.getMessage());
}
}
@@ -304,7 +304,7 @@ public class AbnormalBillController {
abnormalBillService.resProcessing(abnormalBill);
return R.ok();
}catch(Exception e){
- return R.failed("响应处理失败,"+e.getMessage());
+ return R.failed("响应处理失败:"+e.getMessage());
}
}
@@ -320,7 +320,7 @@ public class AbnormalBillController {
abnormalBillService.programConfirm(abnormalBill,abnormalBillDispose);
return R.ok();
}catch (Exception e){
- return R.failed("方案确认失败,"+e.getMessage());
+ return R.failed("方案确认失败:"+e.getMessage());
}
}
@@ -338,7 +338,7 @@ public class AbnormalBillController {
abnormalBillService.dutyConfirm(abnormalBill,abnormalBillDispose,dutyCauseType,dutyType);
return R.ok();
}catch(Exception e){
- return R.failed("判责提交失败,"+e.getMessage());
+ return R.failed("判责提交失败:"+e.getMessage());
}
}
@@ -354,7 +354,7 @@ public class AbnormalBillController {
abnormalBillService.anomalyShutDown(abnormalBill,abnormalBillDispose);
return R.ok();
}catch (Exception e){
- return R.failed("闭环关闭失败,"+e.getMessage());
+ return R.failed("闭环关闭失败:"+e.getMessage());
}
}
@@ -364,7 +364,7 @@ public class AbnormalBillController {
try{
return R.ok(sfcDispatchCommonService.findResrceBySfc(sfcDispatch));
}catch (Exception e){
- return R.failed("根据sfc查找设备失败,"+e.getMessage());
+ return R.failed("根据sfc查找设备失败:"+e.getMessage());
}
}
@@ -373,7 +373,7 @@ public class AbnormalBillController {
try{
return R.ok(fileUploadedService.showFile(request,response));
}catch (Exception e){
- return R.failed("显示图片失败,"+e.getMessage());
+ return R.failed("显示图片失败:"+e.getMessage());
}
}
@@ -384,7 +384,7 @@ public class AbnormalBillController {
fileUploadedService.deleteFile(ftpPath,fileName);
return R.ok();
}catch (Exception e){
- return R.failed("图片删除失败,"+e.getMessage());
+ return R.failed("图片删除失败:"+e.getMessage());
}
}
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/dto/AbnormalBillDto.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/dto/AbnormalBillDto.java
index 3d214d2b..0bea61db 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/dto/AbnormalBillDto.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/dto/AbnormalBillDto.java
@@ -46,6 +46,8 @@ public class AbnormalBillDto extends AbnormalBill {
private String workOrder;
+ private String productionCategory;
+
public String getSeq() {
return seq;
}
@@ -143,4 +145,12 @@ public class AbnormalBillDto extends AbnormalBill {
public void setWorkOrder(String workOrder) {
this.workOrder = workOrder;
}
+
+ public String getProductionCategory() {
+ return productionCategory;
+ }
+
+ public void setProductionCategory(String productionCategory) {
+ this.productionCategory = productionCategory;
+ }
}
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java
index a13d38a5..3e02f6b1 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/AbnormalBillMapper.java
@@ -5,10 +5,12 @@ import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto;
import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import com.foreverwin.mesnac.common.dto.ScrapDto;
import com.foreverwin.mesnac.meapi.model.UserGroup;
+import com.foreverwin.mesnac.production.model.SplitSfc;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
+import java.util.Map;
/**
*
@@ -35,9 +37,9 @@ public interface AbnormalBillMapper extends BaseMapper {
List findCountBySfc(@Param("site")String site, @Param("type")String type, @Param("sfc")String sfc, @Param("status")List status);
- Integer findAbnormalMethodBySFC(@Param("site")String site,@Param("sfc")String sfc);
+ Map findAbnormalMethodBySFC(@Param("site")String site, @Param("abnormalBo")String abnormalBo, @Param("sfc")String sfc);
- List findScrapDtoBySfc(@Param("site")String site, @Param("sfc")String sfc);
+ List findScrapDtoBySfc(@Param("site")String site, @Param("mainSfc")String mainSfc,@Param("splitSfc")List splitSfc);
List getQCAbnormalList(@Param("site") String site);
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java
index f2596b46..1aa56928 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java
@@ -29,6 +29,8 @@ import com.foreverwin.mesnac.meapi.mapper.*;
import com.foreverwin.mesnac.meapi.model.*;
import com.foreverwin.mesnac.meapi.service.*;
import com.foreverwin.mesnac.meapi.util.StringUtils;
+import com.foreverwin.mesnac.production.model.SplitSfc;
+import com.foreverwin.mesnac.production.service.SplitSfcService;
import com.foreverwin.mesnac.quality.service.SelfReportService;
import com.foreverwin.modular.core.exception.BaseException;
import com.foreverwin.modular.core.exception.BusinessException;
@@ -140,7 +142,10 @@ public class AbnormalBillServiceImpl extends ServiceImpl jgProductionIsScrap(String abnormalNo, String site, String sfc) {
//查询该sfc在质量异常异常方案是否是报废,如果是,则大于1
- Integer num = abnormalBillMapper.findAbnormalMethodBySFC(site, sfc);
- return num <= 0;
+ String abnormalBo = null;
+ if(!StringUtils.isBlank(abnormalNo)){
+ abnormalBo = HandleEnum.ABNORMAL_BILL.getHandle(site,abnormalNo);
+ }
+ return abnormalBillMapper.findAbnormalMethodBySFC(site,abnormalBo, sfc);
}
@Override
- public List getScrapDtoBysfc(String site, String sfc) {
- //判断该产品条码是否已经报废
- if(this.jgProductionIsScrap(site,sfc)){
+ public List getScrapDtoBysfc(String abnormalNo, String site, String sfc) {
+ if(StringUtil.isBlank(site)){
+ site = CommonMethods.getSite();
+ }
+ //根据用户提报上来的sfc和异常单查找主SFC
+ Map map = this.jgProductionIsScrap(abnormalNo, site, sfc);
+ String mainSfc = null;
+ String abnormalBo = null;
+ if(map != null){
+ mainSfc = map.get("SFC");
+ abnormalBo = map.get("HANDLE");
+ }
+
+ List splitSfcs = null;
+ SplitSfc splitSfc = new SplitSfc();
+ splitSfc.setSite(site);
+
+ //判断能否找到该主sfc。
+ if(StringUtil.isBlank(mainSfc)){
+ //判断该用户提报上来的sfc是否为空
+ if(StringUtil.isBlank(sfc)){
+ throw new BaseException("该异常单下没有报废的产品条码");
+ }
+
+ //如果不为空,则判断根据这个sfc能从Z_SPLIT_SFC表中查找到主SFC吗,然后在判断主SFC是否已经报废
+ splitSfc.setSplitSfc(sfc);
+ splitSfcs = splitSfcService.selectList(splitSfc);
+ if(splitSfcs.size()>0){
+ Map 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("该异常单下的产品条码不是报废");
+ }
+ throw new BaseException("该产品条码的异常方案不是报废");
+ }
+ }else if(StringUtil.isBlank(sfc)){
+ //根据异常单找到了主sfc,并且sfc参数为空,找到异常单主sfc下拆分的次sfc
+ splitSfc.setSfc(mainSfc);
+ splitSfcs = splitSfcService.selectList(splitSfc);
+ }
+ List scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, mainSfc,splitSfcs);
+
+
+
+ //如果用户提报上来的sfc不为空,并且不是主sfc,则把主sfc从scrapDtoBySfc去掉
+ if(!StringUtil.isBlank(sfc) && !sfc.equals(mainSfc)){
+ 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("该产品条码的异常方案不是报废");
}
- List scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, sfc);
+
+ //查找到责任人,放到表里
+ AbnormalBillDispose abnormalBillDispose = new AbnormalBillDispose();
+ abnormalBillDispose.setAbnormalBillBo(abnormalBo);
+ List 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;
}
diff --git a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml
index 110d9dc5..7d304651 100644
--- a/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml
+++ b/anomaly/src/main/resources/mapper/AbnormalBillMapper.xml
@@ -925,6 +925,7 @@
LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = ZAB.CREATED_USER AND ZNU.SITE = ZAB.SITE
LEFT JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZAB.SHOP_ORDER AND SO.SITE = ZAB.SITE
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = SO.HANDLE AND CF."ATTRIBUTE" = 'WORK_ORDER'
+ LEFT JOIN CUSTOM_FIELDS CF2 ON CF2.HANDLE = SO.HANDLE AND CF2."ATTRIBUTE" = 'PRODUCT_CATEGORY'
LEFT JOIN Z_ABNORMAL_NC_CODE ZANC ON ZANC.ABNORMAL_BILL_BO = ZAB.HANDLE
LEFT JOIN NC_CODE_T NCT ON NCT.NC_CODE_BO = 'NCCodeBO:'|| ZAB.SITE || ',' || ZANC.NC_CODE AND NCT.LOCALE = #{language}
@@ -962,6 +963,9 @@
AND CF.VALUE LIKE '%${abnormalBill.workOrder}%'
+
+ AND CF2.VALUE LIKE '%${abnormalBill.productionCategory}'
+
AND ZAB.REPORT_SEND_USER_GROUP IN
@@ -1081,17 +1085,34 @@
-
diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java
index 10d4c511..54885741 100644
--- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java
+++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/NcCodeServiceImpl.java
@@ -84,6 +84,9 @@ public class NcCodeServiceImpl extends ServiceImpl impleme
@Override
public List findNcCodeDescriptionByNcCode(String ncCode) {
String site = CommonMethods.getSite();
+ if(StringUtils.isBlank(ncCode)){
+ return null;
+ }
String locale = LocaleContextHolder.getLocale().getLanguage();
String[] split = ncCode.split(",");
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java
index eb582857..4158f1a5 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcScrapController.java
@@ -138,11 +138,11 @@ public class SfcScrapController {
* @return
*/
@GetMapping("/getScrapDtoBysfc")
- public R getScrapDtoBysfc(String site,String sfc){
+ public R getScrapDtoBysfc(String site,String abnormalNo,String sfc){
try{
- return R.ok(anomalyService.getScrapDtoBysfc(site,sfc));
+ return R.ok(anomalyService.getScrapDtoBysfc(abnormalNo,site,sfc));
}catch (Exception e){
- return R.failed("产品报废检索报错"+e.getMessage());
+ return R.failed("产品报废检索报错:"+e.getMessage());
}
}
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java
index 4ef0f0ca..4ca6d14e 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SplitSfcMapper.java
@@ -21,4 +21,5 @@ public interface SplitSfcMapper extends BaseMapper {
SfcDto getSfcData(@Param("handle") String handle);
SplitSfcDto getAbnormalQty(@Param("site") String site, @Param("sfc") String sfc, @Param("operation") String operation,@Param("abnormalNo") String abnormalNo);
+
}
\ No newline at end of file
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java
index be8fee96..d3cb4ee7 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcScrap.java
@@ -85,6 +85,11 @@ public class SfcScrap extends Model {
@TableField("MODIFIED_DATE_TIME")
private LocalDateTime modifiedDateTime;
+ @TableField("DUTY_USER")
+ private String dutyUser;
+
+
+
public String getHandle() {
return handle;
@@ -182,7 +187,15 @@ public class SfcScrap extends Model {
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";
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java
index 8903d827..46ac41b1 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcScrapService.java
@@ -29,6 +29,11 @@ public interface SfcScrapService extends IService {
List selectList(SfcScrap sfcScrap);
+ /**
+ * 报废sfc,报废SFC的全部数量
+ * @param param
+ * @return
+ */
List scrap(HashMap param) ;
public void generatorWord(String shopOrder, String sfc, HttpServletResponse response, HttpServletRequest request);
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java
index bb6d89a6..3be420a2 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java
@@ -30,9 +30,11 @@ import com.foreverwin.mesnac.meapi.service.*;
import com.foreverwin.mesnac.production.mapper.SfcCrossMapper;
import com.foreverwin.mesnac.production.mapper.SfcDataAssembleMapper;
import com.foreverwin.mesnac.production.model.LoadInventory;
+import com.foreverwin.mesnac.production.model.SfcHoldLog;
import com.foreverwin.mesnac.production.service.LoadInventoryService;
import com.foreverwin.mesnac.production.service.PodTemplateService;
import com.foreverwin.mesnac.production.service.SfcCrossService;
+import com.foreverwin.mesnac.production.service.SfcHoldLogService;
import com.foreverwin.modular.core.exception.BaseException;
import com.foreverwin.modular.core.meext.MEServices;
import com.foreverwin.modular.core.util.CommonMethods;
@@ -88,6 +90,8 @@ public class PodTemplateServiceImpl implements PodTemplateService {
private SfcDispatchCommonService sfcDispatchCommonService;
@Autowired
private LoadInventoryService loadInventoryService;
+ @Autowired
+ private SfcHoldLogService sfcHoldLogService;
@Override
public Map resrceEnter(WorkCenterDto workCenterDto) {
@@ -235,7 +239,7 @@ public class PodTemplateServiceImpl implements PodTemplateService {
ExceptionUtil.throwException(e);
}
//更改派工单状态
- sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.START.getCode());
+ sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.START.getCode(),null);
});
}
@@ -309,9 +313,18 @@ public class PodTemplateServiceImpl implements PodTemplateService {
LocalDateTime startTime = sfcService.getSfcStartTime(HandleEnum.SFC.getHandle(site, sfc));
long workHourSeconds = Duration.between(startTime, LocalDateTime.now()).getSeconds();
BigDecimal workHour = new BigDecimal(workHourSeconds).divide(BigDecimal.valueOf(3600), 2, RoundingMode.HALF_UP);
+ //减去暂停时间
+ QueryWrapper queryWrapper=new QueryWrapper<>();
+ queryWrapper.eq(SfcHoldLog.SFC,sfc);
+ queryWrapper.eq(SfcHoldLog.STEP_ID,stepId);
+ List list = sfcHoldLogService.list(queryWrapper);
+ if (!list.isEmpty()){
+ BigDecimal holdTime = list.stream().map(SfcHoldLog::getHoldDuration).reduce(BigDecimal.ZERO, BigDecimal::add);
+ workHour=workHour.subtract(holdTime);
+ }
sfcCrossService.completeAction(site, currentRevisionRef.getHandle(), resrce, sfcServiceById.getHandle(), qty);
//更改派工单状态
- sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.COMPLETE.getCode());
+ sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.COMPLETE.getCode(),workHour);
//报工
sendErp(sfc, stepId, qty, BigDecimal.ZERO, workHour);
} catch (Exception e) {
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java
index d0124891..2d545a37 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcScrapServiceImpl.java
@@ -12,6 +12,7 @@ import com.foreverwin.mesnac.common.util.StringUtil;
import com.foreverwin.mesnac.meapi.mapper.SfcMapper;
import com.foreverwin.mesnac.meapi.model.Sfc;
import com.foreverwin.mesnac.production.mapper.SfcScrapMapper;
+import com.foreverwin.mesnac.production.mapper.SplitSfcMapper;
import com.foreverwin.mesnac.production.model.SfcScrap;
import com.foreverwin.mesnac.production.service.PodTemplateService;
import com.foreverwin.mesnac.production.service.SfcScrapService;
@@ -77,6 +78,9 @@ public class SfcScrapServiceImpl extends ServiceImpl i
@Autowired
private UserService userService;
+ @Autowired
+ private SplitSfcMapper splitSfcMapper;
+
@Override
public IPage selectPage(FrontPage frontPage, SfcScrap sfcScrap) {
QueryWrapper queryWrapper = new QueryWrapper<>();
@@ -92,6 +96,7 @@ public class SfcScrapServiceImpl extends ServiceImpl i
}
+
@Override
public List scrap(HashMap param) {
String user = CommonMethods.getUser();
@@ -110,7 +115,6 @@ public class SfcScrapServiceImpl extends ServiceImpl i
}
}
-
String str = JSONUtil.toJsonStr(param.get("sfcScrap"));
List _sfcScrapList = JSONArray.parseArray(str, SfcScrap.class);
List sfcScrapsList = new ArrayList<>();
@@ -136,7 +140,6 @@ public class SfcScrapServiceImpl extends ServiceImpl i
throw new BaseException("该sfc不存在,不能报废");
}
-
if(!StringUtil.isBlank(sfcScraps.getOperation())){
String[] split = sfcScraps.getOperation().split("/");
sfcScrap.setOperation(split[0]);
@@ -144,16 +147,19 @@ public class SfcScrapServiceImpl extends ServiceImpl i
}
sfcScrap.setType(type.toString());
sfcScrap.setReason(reason);
+ //判断该SFC的数量是否>=0;
+ if(sfc.getQty() <= 0){
+ 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()));
+ podTemplateService.sendErp(sfcScrap.getSfc(),sfcScrap.getStepId(),BigDecimal.valueOf(0L),BigDecimal.valueOf(sfcScrap.getQty()),BigDecimal.valueOf(0L));
try{
//调用mes公共接口,报废
@@ -165,7 +171,6 @@ public class SfcScrapServiceImpl extends ServiceImpl i
throw new BaseException("调用mes公共接口失败"+e.getMessage());
}
-
sfcScrapsList.add(sfcScrap);
}
//保存
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java
index 890b58ec..a3a781c6 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java
@@ -101,6 +101,9 @@ public class SplitSfcServiceImpl extends ServiceImpl i
if (sfcDto==null){
throw new BaseException("未找到闭环关闭的质量异常");
}
+ if(StringUtil.isBlank(sfcDto.getNcQty())){
+ throw new BaseException("质量异常提报不良品数量为空,不能拆分");
+ }
sfcData.setQty(Double.valueOf(sfcDto.getNcQty()));
sfcData.setAbnormalNo(sfcDto.getAbnormalNo());
return sfcData;
diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java
index eee5765c..c3749a3d 100644
--- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java
+++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java
@@ -28,6 +28,7 @@ import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
@@ -152,7 +153,7 @@ public class WorkShopTransferServiceImpl extends ServiceImpl
- 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'
diff --git a/production/src/main/resources/mapper/SplitSfcMapper.xml b/production/src/main/resources/mapper/SplitSfcMapper.xml
index b2c99526..a4057151 100644
--- a/production/src/main/resources/mapper/SplitSfcMapper.xml
+++ b/production/src/main/resources/mapper/SplitSfcMapper.xml
@@ -383,4 +383,5 @@
WHERE ZAB.SFC=#{sfc} AND zab.ABNORMAL_NO=#{abnormalNo} AND zab.SITE=#{site} AND ZAB.OPERATION=#{operation} AND zab.STATUS='G' AND zab."TYPE"='Z' AND (zsbd.ABNORMAL_METHOD='F' OR zsbd.ABNORMAL_METHOD='C')
+
diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java b/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java
index d26629f9..bf6b6302 100644
--- a/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java
+++ b/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java
@@ -145,7 +145,19 @@ public class SelfReport extends Model {
@TableField(exist = false)
private String description;
+ /**
+ * 产品类型
+ */
+ @TableField(exist = false)
+ private String productCategory;
+ public String getProductCategory() {
+ return productCategory;
+ }
+
+ public void setProductCategory(String productCategory) {
+ this.productCategory = productCategory;
+ }
public String getHandle() {
return handle;
diff --git a/quality/src/main/resources/mapper/SelfReportMapper.xml b/quality/src/main/resources/mapper/SelfReportMapper.xml
index de56462e..11fdb2e8 100644
--- a/quality/src/main/resources/mapper/SelfReportMapper.xml
+++ b/quality/src/main/resources/mapper/SelfReportMapper.xml
@@ -563,6 +563,8 @@
JOIN ITEM I ON I.ITEM = ZSR.ITEM AND I.CURRENT_REVISION='true'
LEFT JOIN ITEM_T IT ON I.HANDLE = IT.ITEM_BO AND IT.LOCALE = #{locale}
LEFT JOIN Z_NWA_USER B ON ZSR.SITE = B.SITE AND ZSR.CREATE_USER = B.USER_NAME
+ JOIN SHOP_ORDER SO ON SO.shop_order=zsr.SHOP_order and so.site=zsr.site
+ LEFT JOIN CUSTOM_FIELDS PC ON PC.HANDLE = SO.HANDLE AND PC."ATTRIBUTE" = 'PRODUCT_CATEGORY'
@@ -598,6 +600,7 @@
+ AND PC.VALUE LIKE '%'|| #{ew.entity.productCategory}|| '%'
AND ZSR.CREATED_DATE_TIME >=#{startTime}
AND ZSR.CREATED_DATE_TIME <=#{endTime}