Merge remote-tracking branch 'origin/master'

master
philip 4 years ago
commit 4c924c0b78

@ -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());
}
}

@ -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;
/**
* <p>
@ -35,9 +37,9 @@ 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);
Integer findAbnormalMethodBySFC(@Param("site")String site,@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("sfc")String sfc);
List<ScrapDto> findScrapDtoBySfc(@Param("site")String site, @Param("mainSfc")String mainSfc,@Param("splitSfc")List<SplitSfc> splitSfc);
List<AbnormalBill> getQCAbnormalList(@Param("site") String site);

@ -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<AbnormalBillMapper, Abn
private DataFieldListMapper dataFieldListMapper;
@Autowired
private AbnormalCauseMapper abnormalCauseMapper;;
private AbnormalCauseMapper abnormalCauseMapper;
@Autowired
private SplitSfcService splitSfcService;
@ -1144,19 +1149,84 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
}
@Override
public boolean jgProductionIsScrap(String site,String sfc) {
public Map<String, String> 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<ScrapDto> getScrapDtoBysfc(String site, String sfc) {
//判断该产品条码是否已经报废
if(this.jgProductionIsScrap(site,sfc)){
public List<ScrapDto> getScrapDtoBysfc(String abnormalNo, String site, String sfc) {
if(StringUtil.isBlank(site)){
site = CommonMethods.getSite();
}
//根据用户提报上来的sfc和异常单查找主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();
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<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("该异常单下的产品条码不是报废");
}
throw new BaseException("该产品条码的异常方案不是报废");
}
}else if(StringUtil.isBlank(sfc)){
//根据异常单找到了主sfc并且sfc参数为空找到异常单主sfc下拆分的次sfc
splitSfc.setSfc(mainSfc);
splitSfcs = splitSfcService.selectList(splitSfc);
}
List<ScrapDto> 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<ScrapDto> scrapDtoBySfc = abnormalBillMapper.findScrapDtoBySfc(site, sfc);
//查找到责任人,放到表里
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,17 +1081,34 @@
</where>
</select>
<select id="findAbnormalMethodBySFC" resultType="int">
SELECT COUNT(*)
<select id="findAbnormalMethodBySFC" resultType="map">
SELECT zabv.SFC SFC,zabv.HANDLE HANDLE
FROM Z_ABNORMAL_BILL_VIEW zabv
WHERE SITE = #{site} AND SFC = #{sfc} AND ABNORMAL_METHOD = 'C'
INNER JOIN (SELECT MAX(ZAB.HANDLE) HANDLE FROM Z_ABNORMAL_BILL_VIEW ZAB WHERE
ZAB.SITE = #{site}
<if test="sfc != null and sfc != ''">
AND ZAB.SFC = #{sfc}
</if>
<if test="abnormalBo != null and abnormalBo != ''">
AND ZAB.HANDLE = #{abnormalBo}
</if>
) ZAB ON ZAB.HANDLE = zabv.HANDLE
WHERE zabv.SITE = #{site}
<if test="sfc != null and sfc != ''">
AND zabv.SFC = #{sfc}
</if>
<if test="abnormalBo != null and abnormalBo != ''">
AND zabv.HANDLE = #{abnormalBo}
</if>
AND ABNORMAL_METHOD = 'C'
</select>
<select id="findScrapDtoBySfc" resultMap="scrapDto">
SELECT S.SFC SFC,
S2.STATUS STATUS,
SUBSTR(SS.OPERATION_BO ,INSTR(SS.OPERATION_BO ,',',1)+1,(INSTR(SS.OPERATION_BO ,'#',1)-1)-(INSTR(SS.OPERATION_BO ,',',1)+1)) || '/' || SS.STEP_ID OPERATION,
ZSD2.RESRCE RESRCE,ZSD2.SHOP_ORDER SHOP_ORDER,
ZSD2.RESRCE RESRCE,SO.SHOP_ORDER SHOP_ORDER,
CASE WHEN I.ITEM != 'NULL' THEN I.ITEM || '/' || I.REVISION END ITEM,
CASE WHEN R.ROUTER != 'NULL' THEN R.ROUTER || '/' || R.REVISION END ROUTER ,
CASE WHEN B.BOM != 'NULL' THEN B.BOM || '/' || B.REVISION END BOM,
@ -1102,22 +1119,30 @@
FROM SFC S
INNER JOIN SFC_ROUTING SR ON SR.SFC_BO = S.HANDLE
INNER JOIN SFC_ROUTER ST ON ST.SFC_ROUTING_BO = SR.HANDLE
INNER JOIN SFC_STEP SS ON SS.SFC_ROUTER_BO = ST.HANDLE/* AND (SS.QTY_IN_QUEUE > 0 OR SS.QTY_IN_WORK > 0)*/
INNER JOIN SFC_STEP SS ON SS.SFC_ROUTER_BO = ST.HANDLE AND (SS.QTY_IN_QUEUE > 0 OR SS.QTY_IN_WORK > 0)
INNER JOIN STATUS S2 ON S2.HANDLE = S.STATUS_BO
LEFT JOIN Z_SFC_DISPATCH ZSD2 ON ZSD2.DISPATCH_NO = S.SFC || '-' || SS.STEP_ID
AND ZSD2.DISPATCH_STATUS IN ('START','COMPLETE')
LEFT JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZSD2.SHOP_ORDER AND SO.SITE = S.SITE
LEFT JOIN ITEM I ON I.HANDLE = SO.PLANNED_ITEM_BO
LEFT JOIN ROUTER R ON R.HANDLE = ZSD2.ROUTER_BO
INNER JOIN SHOP_ORDER SO ON SO.HANDLE = S.SHOP_ORDER_BO AND SO.SITE = S.SITE
INNER JOIN ITEM I ON I.HANDLE = SO.PLANNED_ITEM_BO
LEFT JOIN ROUTER R ON R.HANDLE = ST.ROUTER_BO
LEFT JOIN Z_SFC_SCRAP ZSS ON ZSS.SFC = S.SFC AND ZSS.SITE = S.SITE
LEFT JOIN BOM B ON B.HANDLE = SO.PLANNED_BOM_BO
INNER JOIN ( SELECT * FROM Z_ABNORMAL_BILL_VIEW ZABV WHERE ZABV.HANDLE = (SELECT MAX(HANDLE) FROM Z_ABNORMAL_BILL_VIEW ZABV2
LEFT JOIN (
SELECT *
FROM Z_ABNORMAL_BILL_VIEW ZABV
WHERE ZABV.HANDLE = (SELECT MAX(HANDLE)
FROM Z_ABNORMAL_BILL_VIEW ZABV2
WHERE ZABV2.SFC = #{mainSfc} )) ZABV
ON ZABV.SFC = S.SFC AND ZABV.SITE= S.SITE
<where>
ZABV2.SFC = #{sfc}
</where>
)) ZABV ON ZABV.SFC = S.SFC AND ZABV.SITE= S.SITE
<where>
S.SITE = #{site} AND S.SFC = #{sfc}
S.SITE = #{site} AND (S.SFC = #{mainSfc}
<if test="splitSfc != null and splitSfc.size > 0">
OR S.SFC IN
<foreach collection="splitSfc" item="item" index="index" separator="," open="(" close=")">
UPPER(#{item.splitSfc})
</foreach>
</if>)
AND (ZSD2.HANDLE IS NULL OR S.SFC = #{mainSfc})
</where>
</select>

@ -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
@ -27,15 +28,16 @@ public interface AnomalyService {
/**
*
* @Param abnormalNo
* @param sfc
* @return
*/
boolean jgProductionIsScrap(String site,String sfc);
Map<String, String> jgProductionIsScrap(String abnormalNo, String site, String sfc);
/**
*
*/
List<ScrapDto> getScrapDtoBysfc(String site, String sfc);
List<ScrapDto> getScrapDtoBysfc(String abnormalNo,String site, String sfc);
void anomalyReveseRepairShutDown(String abnormalNo);

@ -47,7 +47,13 @@ public interface SfcDispatchMapper extends BaseMapper<SfcDispatch> {
@Param("modifyUser") String modifyUser,
@Param("modifiedDateTime") LocalDateTime modifiedDateTime, @Param("workHour")BigDecimal workHour);
SfcDispatchDto findResrceBySfc(@Param("sfcDispatch")SfcDispatchDto sfcDispatch, @Param("site") String site, @Param("array") String[] array);
/**
*
* @param sfcDispatch
* @param site
* @return
*/
SfcDispatchDto findResrceBySfc(@Param("sfcDispatch")SfcDispatchDto sfcDispatch, @Param("site") String site);
SfcDispatchDto findSfcDispatchBySfc(@Param("site")String site, @Param("dto")SfcDispatchDto sfcDispatch);

@ -694,7 +694,7 @@ public class SfcDispatchServiceImpl extends ServiceImpl<SfcDispatchMapper, SfcDi
public SfcDispatchDto findResrceBySfc(SfcDispatchDto sfcDispatch) {
String site = CommonMethods.getSite();
String[] status = {"START","COMPLETE"};
return sfcDispatchMapper.findResrceBySfc(sfcDispatch,site,status);
return sfcDispatchMapper.findResrceBySfc(sfcDispatch,site);
}
@Override

@ -799,17 +799,18 @@
FROM Z_SFC_DISPATCH zsd
<where>
SITE = #{site}
<if test="sfcDispatch != null">
<if test="sfcDispatch.sfc != null and sfcDispatch.sfc != ''">
AND RESRCE IS NOT NULL
AND SFC = #{sfcDispatch.sfc}
</if>
</if>
<if test="array != null">
AND MODIFIED_DATE_TIME = (
SELECT MAX(zsd2.MODIFIED_DATE_TIME) FROM Z_SFC_DISPATCH zsd2
WHERE SFC=#{sfcDispatch.sfc} AND zsd2.RESRCE IS NOT NULL
)
<!-- <if test="array != null">
AND DISPATCH_STATUS IN
<foreach open="(" item="item" collection="array" separator="," close=")">
UPPER(#{item})
</foreach>
</if>
</if>-->
</where>
</select>

@ -84,6 +84,9 @@ public class NcCodeServiceImpl extends ServiceImpl<NcCodeMapper, NcCode> impleme
@Override
public List<NcCodeDto> findNcCodeDescriptionByNcCode(String ncCode) {
String site = CommonMethods.getSite();
if(StringUtils.isBlank(ncCode)){
return null;
}
String locale = LocaleContextHolder.getLocale().getLanguage();
String[] split = ncCode.split(",");

@ -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());
}
}

@ -21,4 +21,5 @@ public interface SplitSfcMapper extends BaseMapper<SplitSfc> {
SfcDto getSfcData(@Param("handle") String handle);
SplitSfcDto getAbnormalQty(@Param("site") String site, @Param("sfc") String sfc, @Param("operation") String operation,@Param("abnormalNo") String abnormalNo);
}

@ -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";

@ -29,6 +29,11 @@ public interface SfcScrapService extends IService<SfcScrap> {
List<SfcScrap> selectList(SfcScrap sfcScrap);
/**
* sfcSFC
* @param param
* @return
*/
List<SfcScrap> scrap(HashMap<String,Object> param) ;
public void generatorWord(String shopOrder, String sfc, HttpServletResponse response, HttpServletRequest request);

@ -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<SfcScrapMapper, SfcScrap> i
@Autowired
private UserService userService;
@Autowired
private SplitSfcMapper splitSfcMapper;
@Override
public IPage<SfcScrap> selectPage(FrontPage<SfcScrap> frontPage, SfcScrap sfcScrap) {
QueryWrapper<SfcScrap> queryWrapper = new QueryWrapper<>();
@ -92,6 +96,7 @@ public class SfcScrapServiceImpl extends ServiceImpl<SfcScrapMapper, SfcScrap> i
}
@Override
public List<SfcScrap> scrap(HashMap<String,Object> param) {
String user = CommonMethods.getUser();
@ -110,7 +115,6 @@ public class SfcScrapServiceImpl extends ServiceImpl<SfcScrapMapper, SfcScrap> i
}
}
String str = JSONUtil.toJsonStr(param.get("sfcScrap"));
List<SfcScrap> _sfcScrapList = JSONArray.parseArray(str, SfcScrap.class);
List<SfcScrap> sfcScrapsList = new ArrayList<>();
@ -136,7 +140,6 @@ public class SfcScrapServiceImpl extends ServiceImpl<SfcScrapMapper, SfcScrap> 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<SfcScrapMapper, SfcScrap> 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<SfcScrapMapper, SfcScrap> i
throw new BaseException("调用mes公共接口失败"+e.getMessage());
}
sfcScrapsList.add(sfcScrap);
}
//保存

@ -101,6 +101,9 @@ public class SplitSfcServiceImpl extends ServiceImpl<SplitSfcMapper, SplitSfc> 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;

@ -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'

@ -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')
</select>
</mapper>

Loading…
Cancel
Save