Merge remote-tracking branch 'origin/master'

master
philip 4 years ago
commit fe0319f1b2

@ -76,6 +76,10 @@
<artifactId>commons-net</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>com.foreverwin.mesnac</groupId>
<artifactId>quality</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>

@ -7,8 +7,10 @@ import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose;
import com.foreverwin.mesnac.anomaly.service.AbnormalBillService;
import com.foreverwin.mesnac.anomaly.service.FileUploadedService;
import com.foreverwin.mesnac.anomaly.service.ProductionScrap;
import com.foreverwin.mesnac.common.dto.SfcDispatchDto;
import com.foreverwin.mesnac.common.service.SfcDispatchCommonService;
import com.foreverwin.mesnac.meapi.service.NcCodeService;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.FrontPage;
import com.foreverwin.modular.core.util.R;
@ -37,6 +39,12 @@ public class AbnormalBillController {
@Autowired
private FileUploadedService fileUploadedService;
@Autowired
private ProductionScrap productionScrap;
@Autowired
private NcCodeService ncCodeService;
/**
* id
@ -334,4 +342,22 @@ public class AbnormalBillController {
return R.ok(abnormalBillService.anomalyReveseRepair(abnormalBill,abnormalBillDispose));
}
/**
*
* @param site
* @param sfc
* @return
*/
@GetMapping("/getScrapDtoBysfc")
public R getScrapDtoBysfc(String site,String sfc){
return R.ok(productionScrap.getScrapDtoBysfc(site,sfc));
}
@GetMapping("/findNcCodeDescriptionByNcCode")
public R findNcCodeDescriptionByNcCode(String ncCode){
return R.ok(ncCodeService.findNcCodeDescriptionByNcCode(ncCode));
}
}

@ -0,0 +1,89 @@
package com.foreverwin.mesnac.anomaly.dto;
/**
* @Description TODO
* @Author zhaojiawei
* @Since 2021-07-28
*/
public class ScrapDto {
private String sfc;
private String status;
private String operation;
private String resrce;
private String shopOrder;
private String router;
private String item;
private String bom;
public String getSfc() {
return sfc;
}
public void setSfc(String sfc) {
this.sfc = sfc;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public String getResrce() {
return resrce;
}
public void setResrce(String resrce) {
this.resrce = resrce;
}
public String getShopOrder() {
return shopOrder;
}
public void setShopOrder(String shopOrder) {
this.shopOrder = shopOrder;
}
public String getRouter() {
return router;
}
public void setRouter(String router) {
this.router = router;
}
public String getItem() {
return item;
}
public void setItem(String item) {
this.item = item;
}
public String getBom() {
return bom;
}
public void setBom(String bom) {
this.bom = bom;
}
}

@ -2,6 +2,7 @@ package com.foreverwin.mesnac.anomaly.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto;
import com.foreverwin.mesnac.anomaly.dto.ScrapDto;
import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@ -31,6 +32,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);
Integer findAbnormalMethodBySFC(@Param("site")String site,@Param("sfc")String sfc);
List<ScrapDto> findScrapDtoBySfc(@Param("site")String site,@Param("sfc")String sfc);
}

@ -0,0 +1,24 @@
package com.foreverwin.mesnac.anomaly.service;
import com.foreverwin.mesnac.anomaly.dto.ScrapDto;
import java.util.List;
/**
* @Description TODO
* @Author zhaojiawei
* @Since 2021-07-28
*/
public interface ProductionScrap {
/**
*
* @param sfc
* @return
*/
boolean jgProductionIsScrap(String site,String sfc);
/**
*
*/
List<ScrapDto> getScrapDtoBysfc(String site,String sfc);
}

@ -22,6 +22,7 @@ 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.quality.service.SelfReportService;
import com.foreverwin.modular.core.exception.BaseException;
import com.foreverwin.modular.core.exception.BusinessException;
import com.foreverwin.modular.core.util.CommonMethods;
@ -131,6 +132,8 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
@Autowired
private AbnormalMessageService abnormalMessageService;
@Autowired
private SelfReportService selfReportService;
@Override
@ -212,6 +215,13 @@ public class AbnormalBillServiceImpl extends ServiceImpl<AbnormalBillMapper, Abn
abnormalNcCodeService.saveOrUpdateBatch(abnormalNcCodes);
abnormalBill.setNcCode(ncCodes.substring(0,ncCodes.length() - 1));
}
//判断是否是用户自报
if(!StringUtil.isBlank(abnormalBill.getInspector())){
abnormalBill.setObjectBo(HandleEnum.SELF_REPORT.getHandle(abnormalBill.getSite(),abnormalBill.getObjectBo()));
selfReportService.updateState(abnormalBill.getObjectBo(),Constants.STATE_CONFIRM);
}
this.saveOrUpdate(abnormalBill);
abnormalBillDisposeService.saveOrUpdate(abnormalBillDispose);
//发送消息

@ -0,0 +1,43 @@
package com.foreverwin.mesnac.anomaly.service.impl;
import com.foreverwin.mesnac.anomaly.dto.ScrapDto;
import com.foreverwin.mesnac.anomaly.mapper.AbnormalBillMapper;
import com.foreverwin.mesnac.anomaly.service.AbnormalBillService;
import com.foreverwin.mesnac.anomaly.service.ProductionScrap;
import com.foreverwin.modular.core.exception.BaseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Description TODO
* @Author zhaojiawei
* @Since 2021-07-28
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ProductionScrapImpl implements ProductionScrap {
@Autowired
private AbnormalBillService abnormalBillService;
@Autowired
private AbnormalBillMapper abnormalBillMapper;
@Override
public boolean jgProductionIsScrap(String site,String sfc) {
//查询该sfc在质量异常异常方案是否是报废,如果是则大于1
Integer num = abnormalBillMapper.findAbnormalMethodBySFC(site, sfc);
return num <= 0;
}
@Override
public List<ScrapDto> getScrapDtoBysfc(String site,String sfc) {
if(this.jgProductionIsScrap(site,sfc)){
throw new BaseException("该产品条码的异常方案不是报废");
}
return abnormalBillMapper.findScrapDtoBySfc(site, sfc);
}
}

@ -58,6 +58,17 @@
<result column="REPORT_SEND_USER_GROUP" property="reportSendUserGroup"/>
</resultMap>
<resultMap id="scrapDto" type="com.foreverwin.mesnac.anomaly.dto.ScrapDto" >
<result column="SFC" property="sfc"/>
<result column="STATUS" property="status"/>
<result column="OPERATION" property="operation"/>
<result column="RESRCE" property="resrce"/>
<result column="SHOP_ORDER" property="shopOrder"/>
<result column="ITEM" property="item"/>
<result column="ROUTER" property="router"/>
<result column="BOM" property="bom"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
HANDLE, SITE, ABNORMAL_NO, STATUS, TYPE, ITEM_BO, SFC, OPERATION, WORK_CENTER, SHOP_ORDER, MESSAGE_TYPE, RESRCE, NC_CODE, SHUT_DOWN, RESPONSE_USER, RESPONSE_DATE_TIME, PB_DESCRIPTION, NC_QTY, PB_GRADE, PB_USER, PB_QTY, REPAIR_DATE_TIME, DISCOVER, INSPECTOR, ENTITY_LOCATION, REPORT_FROM, OBJECT_BO, PB_PHOTOSHOP, CANCEL_CODE, CANCEL_REASON, CANCEL_DATE_TIME, CANCEL_USER, REPORT_SEND_USER_GROUP, CANCEL_SEND_USER_GROUP, CREATED_USER, CREATED_DATE_TIME, MODIFIED_USER, MODIFIED_DATE_TIME
@ -957,5 +968,35 @@
</where>
</select>
<select id="findAbnormalMethodBySFC" resultType="int">
SELECT COUNT(*)
FROM Z_ABNORMAL_BILL_VIEW zabv
WHERE SITE = #{site} AND SFC = #{sfc} AND ABNORMAL_METHOD = 'C'
</select>
<select id="findScrapDtoBySfc" resultMap="scrapDto">
SELECT S.SFC SFC, CASE WHEN S2.STATUS = '401' THEN '新建'
WHEN S2.STATUS = '402' THEN '排队'
WHEN S2.STATUS = '403' THEN '活动'
END 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,
ZSD.RESRCE RESRCE,ZSD.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
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 STATUS S2 ON S2.HANDLE = S.STATUS_BO
INNER JOIN Z_SFC_DISPATCH ZSD ON ZSD.DISPATCH_NO = S.SFC || '-' || SS.STEP_ID
LEFT JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZSD.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 = ZSD.ROUTER_BO
LEFT JOIN BOM B ON B.HANDLE = SO.PLANNED_BOM_BO
<where>
S.SITE = #{site} AND S.SFC = #{sfc}
</where>
</select>
</mapper>

@ -0,0 +1,31 @@
package com.foreverwin.mesnac.meapi.dto;
import com.foreverwin.mesnac.meapi.model.NcCode;
/**
* @Description TODO
* @Author zhaojiawei
* @Since 2021-07-29
*/
public class NcCodeDto extends NcCode {
private String ngGroup;
private String ngDescription;
public String getNgGroup() {
return ngGroup;
}
public void setNgGroup(String ngGroup) {
this.ngGroup = ngGroup;
}
public String getNgDescription() {
return ngDescription;
}
public void setNgDescription(String ngDescription) {
this.ngDescription = ngDescription;
}
}

@ -3,6 +3,7 @@ package com.foreverwin.mesnac.meapi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.foreverwin.mesnac.meapi.dto.NcCodeDto;
import com.foreverwin.mesnac.meapi.model.NcCode;
import com.foreverwin.mesnac.meapi.model.NcGroup;
import org.apache.ibatis.annotations.Param;
@ -36,4 +37,7 @@ public interface NcCodeMapper extends BaseMapper<NcCode> {
Integer checkNcCode(@Param("NcCodeList")List<String> ncCodes,@Param("site")String site,@Param("category")String category);
List<NcCode> findNcCodeByNcGroup(@Param("ncGroup")NcGroup ncGroup);
List<NcCodeDto> findNcCodeDescriptionByNcCode(@Param("site")String site, @Param("locale")String locale, @Param("ncCode")String ncCode);
}

@ -2,6 +2,7 @@ package com.foreverwin.mesnac.meapi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.foreverwin.mesnac.meapi.dto.NcCodeDto;
import com.foreverwin.mesnac.meapi.model.NcCode;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.mesnac.meapi.model.NcGroup;
@ -35,4 +36,6 @@ public interface NcCodeService extends IService<NcCode> {
IPage selectPageByNcGroup(Page<NcGroup> pagePlus, String globalQuery, String ncGroup);
List<NcCode> findNcCodeByNcGroup(NcGroup ncGroup);
List<NcCodeDto> findNcCodeDescriptionByNcCode(String ncCode);
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.mesnac.meapi.dto.NcCodeDto;
import com.foreverwin.mesnac.meapi.mapper.NcCodeMapper;
import com.foreverwin.mesnac.meapi.model.NcCode;
import com.foreverwin.mesnac.meapi.model.NcGroup;
@ -81,5 +82,12 @@ public class NcCodeServiceImpl extends ServiceImpl<NcCodeMapper, NcCode> impleme
return ncCodeMapper.findNcCodeByNcGroup(ncGroup);
}
@Override
public List<NcCodeDto> findNcCodeDescriptionByNcCode(String ncCode) {
String site = CommonMethods.getSite();
String locale = LocaleContextHolder.getLocale().getLanguage();
return ncCodeMapper.findNcCodeDescriptionByNcCode(site,locale,ncCode);
}
}

@ -16,6 +16,11 @@
<result column="DESCRIPTION" property="description"/>
</resultMap>
<resultMap id="ncCodeDto" type="com.foreverwin.mesnac.meapi.dto.NcCodeDto">
<result column="NG_GROUP" property="ngGroup"/>
<result column="NG_DESCRIPTION" property="ngDescription"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
HANDLE, CHANGE_STAMP, SITE, NC_CODE, STATUS_BO, CREATED_DATE_TIME, MODIFIED_DATE_TIME, NC_CATEGORY, DPMO_CATEGORY_BO,DESCRIPTION
@ -415,4 +420,15 @@
</where>
</select>
<select id="findNcCodeDescriptionByNcCode" resultMap="ncCodeDto">
SELECT NC.NC_CODE NC_CODE, NCT.DESCRIPTION DESCRIPTION,NG.NC_GROUP NG_GROUP,NG.DESCRIPTION NG_DESCRIPTION
FROM NC_CODE NC
LEFT JOIN NC_CODE_T NCT ON NC.HANDLE = NCT.NC_CODE_BO AND NCT.LOCALE = #{locale}
LEFT JOIN NC_GROUP_MEMBER NGM ON NGM.NC_CODE_OR_GROUP_GBO = NC.HANDLE
LEFT JOIN NC_GROUP NG ON NG.HANDLE = NGM.NC_GROUP_BO
<where>
NC.SITE = #{site} AND NC.NC_CODE IN UPPER(#{ncCode})
</where>
</select>
</mapper>

Loading…
Cancel
Save