Leon 4 years ago
commit b497fd94a9

@ -182,6 +182,17 @@ public class ProdReadyTask extends Model<ProdReadyTask> {
@TableField(exist = false) @TableField(exist = false)
private String workCenterDesc; private String workCenterDesc;
@TableField(exist = false)
private String blankingSize;
public String getBlankingSize() {
return blankingSize;
}
public void setBlankingSize(String blankingSize) {
this.blankingSize = blankingSize;
}
public List<ProdReadyTaskDetail> getProdReadyTaskDetailList() { public List<ProdReadyTaskDetail> getProdReadyTaskDetailList() {
return prodReadyTaskDetailList; return prodReadyTaskDetailList;
} }

@ -631,7 +631,7 @@
</delete> </delete>
<!-- BaseMapper标准查询/修改/删除 --> <!-- BaseMapper标准查询/修改/删除 -->
<select id="getTaskList" resultMap="BaseResultMap"> <select id="getTaskList" resultMap="BaseResultMap">
SELECT PREZSD.EMPLOYEE_DESCRIPTION,CASE WHEN TO_NUMBER(zsd.DISPATCH_SEQ)=1 THEN NULL SELECT zsd.BLANKING_SIZE,PREZSD.EMPLOYEE_DESCRIPTION,CASE WHEN TO_NUMBER(zsd.DISPATCH_SEQ)=1 THEN NULL
WHEN SS.STEP_SEQUENCE>TO_NUMBER(zsd.DISPATCH_SEQ)-1 THEN '完成' WHEN SS.STEP_SEQUENCE>TO_NUMBER(zsd.DISPATCH_SEQ)-1 THEN '完成'
ELSE '未完成' END LAST_OPERATION_STATUS ELSE '未完成' END LAST_OPERATION_STATUS
,PREOT.DESCRIPTION LAST_OPERATION,zprt.*,zsd.DISPATCH_NO,zsd.RESOURCE_TYPE,RES.DESCRIPTION RESRCE_DESC,ITT.DESCRIPTION ITEM_DESC,OT.DESCRIPTION OPERATION_DESC ,PREOT.DESCRIPTION LAST_OPERATION,zprt.*,zsd.DISPATCH_NO,zsd.RESOURCE_TYPE,RES.DESCRIPTION RESRCE_DESC,ITT.DESCRIPTION ITEM_DESC,OT.DESCRIPTION OPERATION_DESC
@ -662,6 +662,7 @@
<if test="entity.resourceType!=null and entity.resourceType!='' "> AND ZSD.RESOURCE_TYPE=#{entity.resourceType}</if> <if test="entity.resourceType!=null and entity.resourceType!='' "> AND ZSD.RESOURCE_TYPE=#{entity.resourceType}</if>
<if test="entity.shopOrder!=null and entity.shopOrder!='' "> AND ZPRT.SHOP_ORDER=#{entity.shopOrder}</if> <if test="entity.shopOrder!=null and entity.shopOrder!='' "> AND ZPRT.SHOP_ORDER=#{entity.shopOrder}</if>
<if test="entity.item!=null and entity.item!='' "> AND ZPRT.ITEM=#{entity.item}</if> <if test="entity.item!=null and entity.item!='' "> AND ZPRT.ITEM=#{entity.item}</if>
<if test="entity.blankingSize!=null and entity.blankingSize!='' "> AND zsd.BLANKING_SIZE LIKE '%${entity.blankingSize}%'</if>
<if test="entity.planStartDate!=null and entity.planStartDate!='' "> AND TO_CHAR(ZSD.PLANNED_START_DATE,'YYYY-MM-DD')=#{entity.planStartDate}</if> <if test="entity.planStartDate!=null and entity.planStartDate!='' "> AND TO_CHAR(ZSD.PLANNED_START_DATE,'YYYY-MM-DD')=#{entity.planStartDate}</if>
ORDER BY zprt.CREATED_DATE_TIME DESC ORDER BY zprt.CREATED_DATE_TIME DESC
</select> </select>

@ -286,4 +286,34 @@ public class CallItemController {
return R.ok(result); return R.ok(result);
} }
@ResponseBody
@GetMapping("/findIssueItemListPda")
public R findIssueItemListPda(String workCenter, String resource, String requiredFromDate, String requiredToDate, Boolean matchResource) {
List<CallItem> result;
try {
String site = CommonMethods.getSite();
//参数拼装
IssueItemDto issueItemDto = new IssueItemDto();
issueItemDto.setSite(site);
issueItemDto.setResource(resource);
issueItemDto.setWorkCenter(workCenter);
issueItemDto.setMatchResource(matchResource);
if (StringUtil.notBlank(requiredFromDate)) {
issueItemDto.setRequiredFromDT(LocalDate.parse(requiredFromDate, DateTimeFormatter.ISO_DATE));
}
if (StringUtil.notBlank(requiredToDate)) {
issueItemDto.setRequiredToDT(LocalDate.parse(requiredToDate, DateTimeFormatter.ISO_DATE));
}
result = callItemService.findIssueItemListPda(issueItemDto);
} catch (Exception e) {
return R.failed(e.getMessage());
}
return R.ok(result);
}
} }

@ -62,4 +62,9 @@ public interface CallItemMapper extends BaseMapper<CallItem> {
//车间发料查询 //车间发料查询
List<CallItem> finsIssueItemListToResource(IssueItemDto issueItemDto); List<CallItem> finsIssueItemListToResource(IssueItemDto issueItemDto);
List<CallItem> finsIssueItemListNoResource(IssueItemDto issueItemDto); List<CallItem> finsIssueItemListNoResource(IssueItemDto issueItemDto);
//车间发料PDA界面查询
List<CallItem> finsIssueItemListNoResourcePda(IssueItemDto issueItemDto);
List<CallItem> finsIssueItemListToResourcePda(IssueItemDto issueItemDto);
} }

@ -154,4 +154,16 @@ public interface CallItemService extends IService<CallItem> {
* @return * @return
*/ */
List<CallItem> findIssueItemList(IssueItemDto issueItemDto); List<CallItem> findIssueItemList(IssueItemDto issueItemDto);
/**
*
*
* @param issueItemDto
* @return
*/
List<CallItem> findIssueItemListPda(IssueItemDto issueItemDto);
} }

@ -434,4 +434,80 @@ public class CallItemServiceImpl extends ServiceImpl<CallItemMapper, CallItem> i
} }
return list; return list;
} }
@Override
public List<CallItem> findIssueItemListPda(IssueItemDto issueItemDto) {
List<CallItem> list;
if (issueItemDto.getMatchResource()) {
list = callItemMapper.finsIssueItemListToResourcePda(issueItemDto);
} else {
list = callItemMapper.finsIssueItemListNoResourcePda(issueItemDto);
}
if (list == null || list.size() < 1) {
return list;
}
//计算合计(按下料尺寸)
//物料组为GB(钢板):合计=下料尺寸*号最后两位相乘*需求数量
//其他物料: 合计:下料尺寸*号最后一位*需求数量
Map<String, BigDecimal> compQtyMap = new HashMap<>();
for (CallItem callItem: list) {
String component = callItem.getItem();
String itemGroup = callItem.getItemGroup();
BigDecimal reqQty = callItem.getDispatchQty();
String blankingSize = callItem.getBlankingSize();
if (StringUtil.isBlank(blankingSize)) {
callItem.setSizeReqQty(reqQty);
compQtyMap.put(component, reqQty);
continue;
}
if (StringUtil.notBlank(itemGroup) && "GB".equals(itemGroup)) {
if (!blankingSize.contains("×") || blankingSize.split("×").length < 2) {
callItem.setSizeReqQty(reqQty);
compQtyMap.put(component, reqQty);
continue;
}
String []size = blankingSize.split("×");
if (size != null && size.length >= 2) {
int sizeLength = size.length;
BigDecimal length = new BigDecimal(size[sizeLength-1]);
BigDecimal width = new BigDecimal(size[sizeLength-2]);
BigDecimal sizeReqQty = length.multiply(width).multiply(reqQty);
callItem.setSizeReqQty(sizeReqQty);
//按物料汇总需求数量
compQtyMap.put(component, (compQtyMap.get(component) != null ? compQtyMap.get(component).add(sizeReqQty) : sizeReqQty));
}
} else {
String[] size = new String[1];
if (blankingSize.contains("×")) {
size = blankingSize.split("×");
} else {
size[0] = blankingSize;
}
if (size != null && size.length >= 1) {
int sizeLength = size.length;
BigDecimal length = new BigDecimal(size[sizeLength-1]);
BigDecimal sizeReqQty = length.multiply(reqQty);
callItem.setSizeReqQty(sizeReqQty);
//按物料汇总需求数量
compQtyMap.put(component, (compQtyMap.get(component) != null ? compQtyMap.get(component).add(sizeReqQty) : sizeReqQty));
}
}
}
//计算总数量(按数量汇总)
for (CallItem callItem : list) {
callItem.setCompReqQty(compQtyMap.get(callItem.getItem()));
}
return list;
}
} }

@ -978,6 +978,72 @@
ORDER BY VIP.WORK_ORDER, VIP.ITEM ORDER BY VIP.WORK_ORDER, VIP.ITEM
</select> </select>
<select id="finsIssueItemListNoResourcePda" resultMap="FullResultMap">
SELECT ZSD.WORK_CENTER , WCT.DESCRIPTION WORK_CENTER_DESCRIPTION ,
I.ITEM , IT.DESCRIPTION ITEM_DESCRIPTION , ZCI.COMPONENT_BO , ZSD.BLANKING_SIZE ,SUM(ZSD.DISPATCH_QTY) DISPATCH_QTY,
SUM(ZCI.REQUIRED_QTY)-SUM(NVL(ZCI.ISSUE_QTY,0)) REQUIRED_QTY ,MIN(ZCI.REQUIRED_DATE_TIME ) REQUIRED_DATE_TIME ,IG.ITEM_GROUP
FROM Z_CALL_ITEM ZCI
LEFT JOIN Z_SFC_DISPATCH ZSD ON ZSD.HANDLE = ZCI.SFC_DISPATCH_BO
LEFT JOIN WORK_CENTER WC ON WC.WORK_CENTER = ZSD.WORK_CENTER AND WC.SITE = ZCI.SITE
LEFT JOIN WORK_CENTER_T WCT ON WCT.WORK_CENTER_BO = WC.HANDLE AND WCT.LOCALE = 'zh'
LEFT JOIN ITEM I ON I.HANDLE = ZCI.COMPONENT_BO
LEFT JOIN ITEM_T IT ON IT.ITEM_BO = I.HANDLE AND IT.LOCALE = 'zh'
LEFT JOIN ITEM_GROUP_MEMBER IGM ON IGM.ITEM_BO = ZCI.COMPONENT_BO
LEFT JOIN ITEM_GROUP IG ON IG.HANDLE = IGM.ITEM_GROUP_BO
WHERE ZCI.CALL_TYPE = 'MATERIAL' AND ZCI.STATUS = '802' AND ZCI.SITE = #{site}
<if test="workCenter != null and workCenter != ''">
AND ZSD.WORK_CENTER = #{workCenter}
</if>
<if test="resource != null and resource != ''">
AND ZCI.RESRCE = #{resource}
</if>
<if test="item != null and item != ''">
AND I.ITEM = #{item}
</if>
<if test="requiredFromDT != null">
AND ZCI.REQUIRED_DATE_TIME >= #{requiredFromDT}
</if>
<if test="requiredToDT != null">
AND ZCI.REQUIRED_DATE_TIME &lt;= #{requiredToDT}
</if>
GROUP BY ZCI.COMPONENT_BO ,ZSD.WORK_CENTER ,WCT.DESCRIPTION ,I.ITEM ,IT.DESCRIPTION ,ZSD.BLANKING_SIZE ,IG.ITEM_GROUP
ORDER BY ZCI.COMPONENT_BO
</select>
<select id="finsIssueItemListToResourcePda" resultMap="FullResultMap">
SELECT ZSD.WORK_CENTER , WCT.DESCRIPTION WORK_CENTER_DESCRIPTION ,
I.ITEM , IT.DESCRIPTION ITEM_DESCRIPTION , ZCI.COMPONENT_BO , ZSD.BLANKING_SIZE ,SUM(ZSD.DISPATCH_QTY) DISPATCH_QTY,
SUM(ZCI.REQUIRED_QTY)-SUM(NVL(ZCI.ISSUE_QTY,0)) REQUIRED_QTY ,MIN(ZCI.REQUIRED_DATE_TIME ) REQUIRED_DATE_TIME ,
ZCI.RESRCE, R.DESCRIPTION RESOURCE_DESCRIPTION , IG.ITEM_GROUP
FROM Z_CALL_ITEM ZCI
LEFT JOIN Z_SFC_DISPATCH ZSD ON ZSD.HANDLE = ZCI.SFC_DISPATCH_BO
LEFT JOIN WORK_CENTER WC ON WC.WORK_CENTER = ZSD.WORK_CENTER AND WC.SITE = ZCI.SITE
LEFT JOIN WORK_CENTER_T WCT ON WCT.WORK_CENTER_BO = WC.HANDLE AND WCT.LOCALE = 'zh'
LEFT JOIN ITEM I ON I.HANDLE = ZCI.COMPONENT_BO
LEFT JOIN ITEM_T IT ON IT.ITEM_BO = I.HANDLE AND IT.LOCALE = 'zh'
LEFT JOIN ITEM_GROUP_MEMBER IGM ON IGM.ITEM_BO = ZCI.COMPONENT_BO
LEFT JOIN ITEM_GROUP IG ON IG.HANDLE = IGM.ITEM_GROUP_BO
LEFT JOIN RESRCE R ON R.RESRCE = ZCI.RESRCE AND R.SITE = ZCI.SITE
WHERE ZCI.CALL_TYPE = 'MATERIAL' AND ZCI.STATUS = '802' AND ZCI.SITE = #{site}
<if test="workCenter != null and workCenter != ''">
AND ZSD.WORK_CENTER = #{workCenter}
</if>
<if test="resource != null and resource != ''">
AND ZCI.RESRCE = #{resource}
</if>
<if test="item != null and item != ''">
AND I.ITEM = #{item}
</if>
<if test="requiredFromDT != null">
AND ZCI.REQUIRED_DATE_TIME >= #{requiredFromDT}
</if>
<if test="requiredToDT != null">
AND ZCI.REQUIRED_DATE_TIME &lt;= #{requiredToDT}
</if>
GROUP BY ZCI.COMPONENT_BO ,ZSD.WORK_CENTER ,WCT.DESCRIPTION ,I.ITEM ,IT.DESCRIPTION ,ZSD.BLANKING_SIZE ,IG.ITEM_GROUP , ZCI.RESRCE, R.DESCRIPTION
ORDER BY ZCI.COMPONENT_BO
</select>
<select id="findCallItemListPda" resultMap="FullResultMap"> <select id="findCallItemListPda" resultMap="FullResultMap">
SELECT MML.* , ZSD.PLANNED_START_DATE FROM SELECT MML.* , ZSD.PLANNED_START_DATE FROM
( SELECT ZCI.SITE, CF.VALUE WORK_ORDER, ZCI.STATUS ,WC.WORK_CENTER, WCT.DESCRIPTION WORK_CENTER_DESCRIPTION, ( SELECT ZCI.SITE, CF.VALUE WORK_ORDER, ZCI.STATUS ,WC.WORK_CENTER, WCT.DESCRIPTION WORK_CENTER_DESCRIPTION,

@ -639,7 +639,7 @@
SELECT IW.DATE_STARTED SELECT IW.DATE_STARTED
FROM SFC S FROM SFC S
INNER JOIN SFC_ROUTING SR ON SR.SFC_BO = S.HANDLE INNER JOIN SFC_ROUTING SR ON SR.SFC_BO = S.HANDLE
INNER JOIN SFC_ROUTER SRO ON SRO.SFC_ROUTING_BO = SR.HANDLE AND SRSRO.IN_USE = 'true' INNER JOIN SFC_ROUTER SRO ON SRO.SFC_ROUTING_BO = SR.HANDLE AND SRO.IN_USE = 'true'
INNER JOIN SFC_STEP SS ON SS.SFC_ROUTER_BO = SRO.HANDLE INNER JOIN SFC_STEP SS ON SS.SFC_ROUTER_BO = SRO.HANDLE
INNER JOIN SFC_IN_WORK IW ON SS.HANDLE = IW.SFC_STEP_BO INNER JOIN SFC_IN_WORK IW ON SS.HANDLE = IW.SFC_STEP_BO
INNER JOIN STATUS ST ON ST.HANDLE = S.STATUS_BO AND ST.STATUS ='403' INNER JOIN STATUS ST ON ST.HANDLE = S.STATUS_BO AND ST.STATUS ='403'

@ -20,4 +20,6 @@ import java.util.List;
public interface LoadInventoryMapper extends BaseMapper<LoadInventory> { public interface LoadInventoryMapper extends BaseMapper<LoadInventory> {
List<LoadInventoryDto> getLoadInventoryList(@Param("site") String site, @Param("resrce") String resrce, @Param("language") String language); List<LoadInventoryDto> getLoadInventoryList(@Param("site") String site, @Param("resrce") String resrce, @Param("language") String language);
Integer findBomComponent(@Param("site")String site, @Param("resrce")String resrce, @Param("itemBo")String itemBo);
} }

@ -119,6 +119,11 @@ public class LoadInventoryServiceImpl extends ServiceImpl<LoadInventoryMapper, L
if (inventory.getQtyOnHand().compareTo(loadQty)<0){ if (inventory.getQtyOnHand().compareTo(loadQty)<0){
throw new BaseException("上料数量不能大于剩余数量"+inventory.getQtyOnHand()); throw new BaseException("上料数量不能大于剩余数量"+inventory.getQtyOnHand());
} }
//设备派工单组件是否包含
Integer bomComponent = loadInventoryMapper.findBomComponent(site, resrce, inventory.getItemBo());
if (bomComponent<1){
throw new BaseException("不是设备上产品需要的物料");
}
BigDecimal remainQty = inventory.getQtyOnHand().subtract(loadQty); BigDecimal remainQty = inventory.getQtyOnHand().subtract(loadQty);
//扣减库存 //扣减库存
commonService.updateInventory(site,inventoryId,remainQty); commonService.updateInventory(site,inventoryId,remainQty);

@ -423,4 +423,13 @@
LEFT JOIN CUSTOM_FIELDS cf3 ON cf.HANDLE=IT.HANDLE AND CF."ATTRIBUTE"='MAT_SPEC' LEFT JOIN CUSTOM_FIELDS cf3 ON cf.HANDLE=IT.HANDLE AND CF."ATTRIBUTE"='MAT_SPEC'
WHERE ZLI.RESRCE=#{resrce} AND ZLI.SITE=#{site} ORDER BY ZLI.CREATED_DATE_TIME WHERE ZLI.RESRCE=#{resrce} AND ZLI.SITE=#{site} ORDER BY ZLI.CREATED_DATE_TIME
</select> </select>
<select id="findBomComponent" resultType="java.lang.Integer">
SELECT COUNT(BC.HANDLE) FROM Z_SFC_DISPATCH zsd
JOIN SFC S ON S.SFC = zsd.SFC AND zsd.SITE=S.SITE
JOIN SFC_BOM SB ON SB.SFC_BO = S.HANDLE
JOIN BOM_COMPONENT BC ON BC.BOM_BO = SB.BOM_BO
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = BC.COMPONENT_GBO AND CF."ATTRIBUTE" = 'ACCESSORY_TYPE' AND (CF.VALUE = '0' OR CF.VALUE = NULL)
WHERE zsd.SITE=#{site} AND zsd.DISPATCH_STATUS!='COMPLETE' AND zsd.DISPATCH_STATUS!='CANCEL' AND zsd.RESRCE=#{resrce} AND BC.COMPONENT_GBO=#{itemBo}
</select>
</mapper> </mapper>

Loading…
Cancel
Save