Merge remote-tracking branch 'origin/master'

master
philip 3 years ago
commit 57873ca77f

@ -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<String, Object> map){
try{
return R.ok(reportService.resourceRepair(map));
}catch (Exception e){
return R.failed(e.getMessage());
}
}
}

@ -23,4 +23,7 @@ public interface ReportMapper {
List<Map<String,Object>> surplusReturnTable(@Param("site")String site, @Param("locale")String locale,
@Param("item")String item, @Param("itemDescription")String itemDescription);
List<Map<String,Object>> resourceRepair(@Param("site")String site, @Param("locale")String locale,
@Param("param")Map<String, Object> map);
}

@ -17,4 +17,6 @@ public interface ReportService {
List<Map<String, Object>> partsManufacturing(PartsManufacturing partsManufacturing);
List<Map<String, Object>> surplusReturnTable(String item, String itemDescription);
List<Map<String, Object>> resourceRepair(Map<String,Object> map);
}

@ -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<Map<String, Object>> resourceRepair(Map<String, Object> map) {
String locale = LocaleContextHolder.getLocale().getLanguage();
String site = CommonMethods.getSite();
Map<String, List<NcCode>> ncCodeMap = new HashMap<>();
NcCode ncCode = new NcCode();
ncCode.setSite(site);
List<NcCode> ncCodeList = ncCodeService.selectList(ncCode);
if (ncCodeList != null && ncCodeList.size() > 0) {
ncCodeMap = ncCodeList.stream().collect(Collectors.groupingBy(NcCode::getNcCode));
}
Map<String, List<NwaUser>> userMap = new HashMap<>();
NwaUser nwaUser = new NwaUser();
nwaUser.setSite(site);
List<NwaUser> nwaUserList = nwaUserService.selectList(nwaUser);
if(nwaUserList != null && nwaUserList.size() > 0) {
userMap = nwaUserList.stream().collect(Collectors.groupingBy(NwaUser::getUserName));
}
List<Map<String, Object>> maps = reportMapper.resourceRepair(site, locale, map);
for (int i = 0; i < maps.size(); i++) {
Map<String, Object> 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<String, Object> 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;
}
}

@ -88,4 +88,54 @@
</if>
</where>
</select>
<select id="resourceRepair" resultType="map">
SELECT
ZRRT.HANDLE HANDLE,
CASE WHEN WC2.WORK_CENTER != 'NULL' THEN WC2.WORK_CENTER
ELSE WC.WORK_CENTER
END WORK_CENTER,
CASE WHEN WCT.DESCRIPTION != 'NULL' THEN WCT.DESCRIPTION
ELSE WCT2.DESCRIPTION
END WORK_CENTER_DESCRIPTION,
ZRRT.RESOURCE_NO,R.DESCRIPTION RESOURCE_DESCRIPTION,ZRRT.NC_CODE_NO, /*不良代码描述,维修人员*/
ZRRT.PRELIMINARY_REASON ,ZRRT.DEAL_WAY ,ZRRT.DEAL_WAY_DESCRIPTION ,
ZRITS.ITEM_BO ITEM_BO,
CASE WHEN ZRITS.ITEM_BO != 'NULL' THEN IT.DESCRIPTION
ELSE ZRITS.DESCRIPTION
END ITEM_DESCRIPTION,
CF.VALUE ITEM_SPEC,
ZRRT.ACTUAL_START_DATE ACTUAL_START_DATE,ZRRT.ACTUAL_COMPLETE_DATE ACTUAL_COMPLETE_DATE,
TRUNC(TO_NUMBER((ZRRT.ACTUAL_COMPLETE_DATE-ZRRT.ACTUAL_START_DATE)*24),2) SHUT_DOWN_TIME,
TRUNC(TO_NUMBER((ZRRT.WAIT_END_DATE -ZRRT.WAIT_START_DATE)*24),2) REPAIR_WAIT_TIME,
TRUNC(TO_NUMBER((ZRRT.ACTUAL_COMPLETE_DATE-ZRRT.ACTUAL_START_DATE-ZRRT.WAIT_TIME)*24),2) REPAIR_TIME,
ZRRT. STATUS ,ZRRT.REPORT_USER REPORT_USER,ZNU.FULL_NAME REPORT_USER_DESCRIPTION,
ZRRT.REPAIR_USERS ,ZRRT.REMARK
FROM
Z_RESOURCE_REPAIR_TASK ZRRT
INNER JOIN RESRCE R ON R.RESRCE = ZRRT.RESOURCE_NO AND R.SITE = ZRRT.SITE
INNER JOIN WORK_CENTER_MEMBER WCM ON WCM.WORK_CENTER_OR_RESOURCE_GBO = R.HANDLE
LEFT JOIN WORK_CENTER WC ON WC.HANDLE = WCM.WORK_CENTER_BO AND WC.WC_CATEGORY ='LEVEL3'
LEFT JOIN WORK_CENTER_MEMBER WCM2 ON WCM2.WORK_CENTER_OR_RESOURCE_GBO = WC.HANDLE
LEFT JOIN WORK_CENTER WC2 ON WC2.HANDLE = WCM.WORK_CENTER_BO AND WC2.WC_CATEGORY = 'LEVEL4'
LEFT JOIN WORK_CENTER_T WCT ON WCT.WORK_CENTER_BO = WC.HANDLE AND WCT.LOCALE = #{locale}
LEFT JOIN WORK_CENTER_T WCT2 ON WCT2.WORK_CENTER_BO = WC2.HANDLE AND WCT2.LOCALE = #{locale}
LEFT JOIN Z_RESOURCE_INSPECT_TASK_SPARE ZRITS ON ZRITS.RESOURCE_INSPECT_TASK_BO = ZRRT.HANDLE
LEFT JOIN ITEM_T IT ON IT.ITEM_BO = ZRITS.ITEM_BO AND IT.LOCALE = #{locale}
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = ZRITS.ITEM_BO AND CF."ATTRIBUTE" = 'MAT_SPEC'
LEFT JOIN Z_NWA_USER ZNU ON ZNU.USER_NAME = ZRRT.REPORT_USER AND ZNU.SITE = ZRRT.SITE
<where>
ZRRT.SITE = #{site}
<if test="param.workCenter != null and param.workCenter != ''">
AND (WC.WORK_CENTER LIKE '%${param.workCenter}%' OR WC2.WORK_CENTER LIKE '%${param.workCenter}%' OR
WCT.DESCRIPTION LIKE '%${param.workCenter}%' OR WCT2.DESCRIPTION LIKE '%${param.workCenter}%')
</if>
<if test="param.resource != null and param.resource != ''">
AND (R.RESRCE LIKE '%${param.resource}%' OR R.DESCRIPTION LIKE '%${param.resource}%')
</if>
</where>
</select>
</mapper>

@ -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
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
#{item.handle}
</foreach>

@ -42,5 +42,9 @@
<groupId>com.foreverwin.mesnac</groupId>
<artifactId>anomaly</artifactId>
</dependency>
<dependency>
<groupId>com.foreverwin.mesnac</groupId>
<artifactId>equip</artifactId>
</dependency>
</dependencies>
</project>
Loading…
Cancel
Save