diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java index 841ecc55..66993910 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java @@ -13,6 +13,8 @@ import com.foreverwin.modular.core.util.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.Map; + @RestController @RequestMapping("/REPORT") public class ReportController { @@ -46,4 +48,18 @@ public class ReportController { return R.failed(e.getMessage()); } } + + /** + * 设备维修记录报表 + * @param map + * @return + */ + @PostMapping("/resourceRepair") + public R resourceRepair(@RequestBody(required = false)Map map){ + try{ + return R.ok(reportService.resourceRepair(map)); + }catch (Exception e){ + return R.failed(e.getMessage()); + } + } } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java index 059c60ee..67fb7a77 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java @@ -23,4 +23,7 @@ public interface ReportMapper { List> surplusReturnTable(@Param("site")String site, @Param("locale")String locale, @Param("item")String item, @Param("itemDescription")String itemDescription); + List> resourceRepair(@Param("site")String site, @Param("locale")String locale, + @Param("param")Map map); + } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java index d59d2103..021575d1 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java @@ -17,4 +17,6 @@ public interface ReportService { List> partsManufacturing(PartsManufacturing partsManufacturing); List> surplusReturnTable(String item, String itemDescription); + + List> resourceRepair(Map map); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index d463cc23..1e8800f6 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -4,14 +4,21 @@ import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing; import com.foreverwin.mesnac.anomaly.mapper.ReportMapper; import com.foreverwin.mesnac.anomaly.service.ReportService; import com.foreverwin.mesnac.integration.model.IntegrationLog; +import com.foreverwin.mesnac.meapi.model.NcCode; +import com.foreverwin.mesnac.meapi.model.NwaUser; +import com.foreverwin.mesnac.meapi.service.NcCodeService; +import com.foreverwin.mesnac.meapi.service.NwaUserService; +import com.foreverwin.mesnac.meapi.util.StringUtils; import com.foreverwin.modular.core.util.CommonMethods; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @Description TODO @@ -22,8 +29,12 @@ import java.util.Map; @Transactional(rollbackFor = Exception.class) public class ReportServiceImpl implements ReportService { + @Autowired + private NcCodeService ncCodeService; @Autowired private ReportMapper reportMapper; + @Autowired + private NwaUserService nwaUserService; /** * 接口日志表 @@ -55,4 +66,68 @@ public class ReportServiceImpl implements ReportService { String site = CommonMethods.getSite(); return reportMapper.surplusReturnTable(site,locale,item,itemDescription); } + + @Override + public List> resourceRepair(Map map) { + String locale = LocaleContextHolder.getLocale().getLanguage(); + String site = CommonMethods.getSite(); + + + + Map> ncCodeMap = new HashMap<>(); + NcCode ncCode = new NcCode(); + ncCode.setSite(site); + List ncCodeList = ncCodeService.selectList(ncCode); + if (ncCodeList != null && ncCodeList.size() > 0) { + ncCodeMap = ncCodeList.stream().collect(Collectors.groupingBy(NcCode::getNcCode)); + } + + Map> userMap = new HashMap<>(); + NwaUser nwaUser = new NwaUser(); + nwaUser.setSite(site); + List nwaUserList = nwaUserService.selectList(nwaUser); + if(nwaUserList != null && nwaUserList.size() > 0) { + userMap = nwaUserList.stream().collect(Collectors.groupingBy(NwaUser::getUserName)); + } + + + List> maps = reportMapper.resourceRepair(site, locale, map); + + + for (int i = 0; i < maps.size(); i++) { + Map temporaryMap = maps.get(i); + String ncCodes = (String)temporaryMap.get("NC_CODE_NO"); + if(StringUtils.isBlank(ncCodes)){ + maps.get(i).put("NC_CODE_DESCRIPTION", ""); + continue; + } + String []ncCodeArray = ncCodes.split(","); + String ncCodeDesc = ""; + for (int j = 0; j < ncCodeArray.length; j++) { + ncCodeDesc += ncCodeMap.get(ncCodeArray[j]).get(0).getDescription()+";"; + } + maps.get(i).put("NC_CODE_DESCRIPTION", ncCodeDesc); + } + + + for (int i = 0; i < maps.size(); i++) { + Map temporaryMap = maps.get(i); + String repairUser = (String)temporaryMap.get("REPAIR_USERS"); + if(StringUtils.isBlank(repairUser)){ + maps.get(i).put("REPAIR_USERS_DESCRIPTION", ""); + continue; + } + String []repairUserArray = repairUser.split(","); + String repairUserDescription = ""; + for (int j = 0; j < repairUserArray.length; j++) { + repairUserDescription += userMap.get(repairUserArray[j]).get(0).getFullName()+";"; + } + maps.get(i).put("REPAIR_USERS_DESCRIPTION", repairUserDescription); + } + + + + + return maps; + } } diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index d020e5ec..056453af 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -88,4 +88,54 @@ + + \ No newline at end of file diff --git a/dispatch/src/main/resources/mapper/CallItemMapper.xml b/dispatch/src/main/resources/mapper/CallItemMapper.xml index c187ec91..11d56627 100644 --- a/dispatch/src/main/resources/mapper/CallItemMapper.xml +++ b/dispatch/src/main/resources/mapper/CallItemMapper.xml @@ -612,13 +612,17 @@ SC.QTY*BC.QTY ISSUE_QTY, SC.QTY*BC.QTY-NVL(ZCI.REQUIRED_QTY,0) REQUIRED_QTY, ZSD.PLANNED_START_DATE REQUIRED_DATE_TIME, ZCI.HANDLE, ZCI.CALL_TYPE FROM Z_SFC_DISPATCH ZSD INNER JOIN SFC SC ON SC.SITE = ZSD.SITE AND SC.SFC = ZSD.SFC + INNER JOIN SHOP_ORDER SO ON SO.HANDLE = SC.SHOP_ORDER_BO + INNER JOIN CUSTOM_FIELDS CF ON CF.HANDLE = SO.HANDLE AND CF.ATTRIBUTE = 'FACTORY' INNER JOIN SFC_BOM SB ON SB.SFC_BO = SC.HANDLE INNER JOIN BOM_COMPONENT BC ON BC.BOM_BO = SB.BOM_BO INNER JOIN ITEM CP ON CP.HANDLE = BC.COMPONENT_GBO + LEFT JOIN CUSTOM_FIELDS CS ON CS.HANDLE = CP.HANDLE AND CS.ATTRIBUTE = 'ACCESSORY_TYPE' INNER JOIN BOM_OPERATION BO ON BO.BOM_COMPONENT_BO = BC.HANDLE AND BO.OPERATION_BO = 'OperationBO:'||SC.SITE||','||ZSD.OPERATION||',#' INNER JOIN CUSTOM_FIELDS CF ON CF.HANDLE = BC.HANDLE AND CF."ATTRIBUTE" = 'STEP_ID' AND CF.VALUE = ZSD.STEP_ID LEFT JOIN Z_CALL_ITEM ZCI ON ZCI.SFC_DISPATCH_BO = ZSD.HANDLE AND ZCI.COMPONENT_BO = CP.HANDLE AND ZCI.STEP_ID = ZSD.STEP_ID - WHERE ZSD.HANDLE IN + WHERE ( (CF.VALUE ='6100' AND CS.VALUE = '9') OR (CF.VALUE = '6106' OR CP.MATERIAL_TYPE='ROH') ) + AND ZSD.HANDLE IN #{item.handle} diff --git a/quartz/pom.xml b/quartz/pom.xml index e92893e5..b2ff0dcc 100644 --- a/quartz/pom.xml +++ b/quartz/pom.xml @@ -42,5 +42,9 @@ com.foreverwin.mesnac anomaly + + com.foreverwin.mesnac + equip + \ No newline at end of file