Browse Source

申请领料单

master
Yangzz 1 year ago
parent
commit
fc6882889d
  1. 2
      src/main/java/com/gaotao/modules/orderIssure/entity/SOScheduledRoutingEntity.java
  2. 2
      src/main/java/com/gaotao/modules/orderIssure/mapper/IssureNotifyMapper.java
  3. 48
      src/main/java/com/gaotao/modules/orderIssure/service/impl/IssureNotifyServiceImpl.java
  4. 11
      src/main/java/com/gaotao/modules/shopOrder/entity/SearchShopOrder.java
  5. 29
      src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml
  6. 5
      src/main/resources/mapper/shopOrder/ShopOrderMapper.xml

2
src/main/java/com/gaotao/modules/orderIssure/entity/SOScheduledRoutingEntity.java

@ -6,6 +6,7 @@ import lombok.Data;
import org.apache.ibatis.type.Alias;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ -30,4 +31,5 @@ public class SOScheduledRoutingEntity extends Soscheduledrouting {
private int limit;
private int page;
private BigDecimal alreadyApplyTotal;
}

2
src/main/java/com/gaotao/modules/orderIssure/mapper/IssureNotifyMapper.java

@ -126,6 +126,8 @@ public interface IssureNotifyMapper extends BaseMapper<SOIssueNotifyHeader> {
void saveIssueNotifyChangeLog(IssueNotifyChangeLog data);
void batchSaveIssueNotifyChangeLog(List<IssueNotifyChangeLog> data);
List<SOIssueNotifyOrderList> getSOIssueNotifyOrderListData(SOIssueNotifyOrderMaterialListData Data);
List<SOIssueNotifyOrderMaterialListData> checkOtherPart(SOIssueNotifyOrderMaterialListData data);

48
src/main/java/com/gaotao/modules/orderIssure/service/impl/IssureNotifyServiceImpl.java

@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -175,11 +176,8 @@ public class IssureNotifyServiceImpl implements IssureNotifyService {
@Override
@Transactional
public void deleteNotifySOSPlus(SOIssueNotifyOrderListData data){
List<SOIssueNotifyOrderMaterialListData> checkDeleteOrderList=issureNotifyMapper.checkDeleteOrderList(data);
if(checkDeleteOrderList.size()>0){
throw new RuntimeException("领料单内有明细记录无法删除!");
}
issureNotifyMapper.deleteNotifySOS(data);
List<IssueNotifyChangeLog> issueNotifyChangeLogList = new ArrayList<>();
//生成工单明细变更日志
IssueNotifyChangeLog issueNotifyChangeLog=new IssueNotifyChangeLog();
issueNotifyChangeLog.setSite(data.getSite());
issueNotifyChangeLog.setNotifyNo(data.getNotifyNo());
@ -189,9 +187,45 @@ public class IssureNotifyServiceImpl implements IssureNotifyService {
issueNotifyChangeLog.setComponentPartNo("");
issueNotifyChangeLog.setQtyToIssue(null);
issueNotifyChangeLog.setUpdateBy(String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername()));
issueNotifyChangeLog.setUpdateType("删除申请单工单明细");
issueNotifyChangeLog.setUpdateType("删除申请单工单明细");
issueNotifyChangeLog.setUpdateDate(new Date());
issureNotifyMapper.saveIssueNotifyChangeLog(issueNotifyChangeLog);
issueNotifyChangeLogList.add(issueNotifyChangeLog);
// 检查是否有实际领料记录 生成工单明细变更日志
SOIssueNotifyOrderMaterialListData materialDetaildata=new SOIssueNotifyOrderMaterialListData();
materialDetaildata.setSite(data.getSite());
materialDetaildata.setNotifyNo(data.getNotifyNo());
materialDetaildata.setItemNo(data.getItemNo());
//查询材料明细数据
List<SOIssueNotifyOrderMaterialListData> checkDeleteMaterial=issureNotifyMapper.checkDeleteMaterial(materialDetaildata);
if(checkDeleteMaterial.size()>0){
for (int i = 0; i <checkDeleteMaterial.size(); i++) {
if(BigDecimalUtils.compareToZero(checkDeleteMaterial.get(i).getQtyToIssueOriginal())>0){
throw new RuntimeException("该行已有存在实际领料,无法删除!");
}
IssueNotifyChangeLog materialChangeLog=new IssueNotifyChangeLog();
materialChangeLog.setSite(data.getSite());
materialChangeLog.setNotifyNo(data.getNotifyNo());
materialChangeLog.setItemNo(data.getItemNo());
materialChangeLog.setComponentPartNo(checkDeleteMaterial.get(i).getComponentPartNo());
materialChangeLog.setQtyToIssue(checkDeleteMaterial.get(i).getQtyToIssue());
materialChangeLog.setUpdateBy(String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername()));
materialChangeLog.setUpdateType("删除申请单材料明细");
materialChangeLog.setUpdateDate(new Date());
materialChangeLog.setIssueType(checkDeleteMaterial.get(i).getIssueType());
materialChangeLog.setsOOrderNo(data.getsOOrderNo());
materialChangeLog.setSeqNo(data.getSeqNo());
issueNotifyChangeLogList.add(materialChangeLog);
}
}
//删除工单明细表
issureNotifyMapper.deleteNotifySOS(data);
//删除材料明细表
issureNotifyMapper.deleteNotifyMaterial(materialDetaildata);
//保存明细变更日志
issureNotifyMapper.batchSaveIssueNotifyChangeLog(issueNotifyChangeLogList);
}
@Override

11
src/main/java/com/gaotao/modules/shopOrder/entity/SearchShopOrder.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.gaotao.common.utils.QueryPage;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -89,6 +90,8 @@ public class SearchShopOrder extends QueryPage {
private String batchNo;
private String buNo;
private List<String> statusList;
private BigDecimal alreadyApplyTotal;
public String getOrderNo() {
return orderNo;
@ -529,4 +532,12 @@ public class SearchShopOrder extends QueryPage {
public void setStatusList(List<String> statusList) {
this.statusList = statusList;
}
public BigDecimal getAlreadyApplyTotal() {
return alreadyApplyTotal;
}
public void setAlreadyApplyTotal(BigDecimal alreadyApplyTotal) {
this.alreadyApplyTotal = alreadyApplyTotal;
}
}

29
src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml

@ -78,7 +78,8 @@ RecordVersion,OutWorkOrderFlag,ProjectID,OrderType,AuthRuleID,bu)
select a.site,a.OrderNo orderno,a.ItemNo itemNo,b.OperationDesc itemDesc,a.seqno ,a.qtyrequired,a.qtyreported,a.remark,
a.s_scheduleddate,a.S_ResourceID sResourceid,dbo.getResourceDesc(a.site,a.S_ResourceID) resourceDesc,a.S_ShiftNo sShiftno,
dbo.getScheduleShiftDesc(a.site,a.s_shiftno) shiftDesc,a.s_workcenterno,s.PartNo partNo,
c.WorkCenterDesc workCenterDesc,dbo.Get_PartDesc(a.site,s.PartNo) partDesc
c.WorkCenterDesc workCenterDesc,dbo.Get_PartDesc(a.site,s.PartNo) partDesc,
(SELECT ROUND(SUM(issureQty),3) FROM SOIssueNotifyOrderList where Site = a.site and seqNo = a.seqno) alreadyApplyTotal
from SOScheduledRouting a
left join ShopOrder s on a.site=s.site and a.OrderNo=s.OrderNo
left join SORouting b on a.site=b.site and a.OrderNo=b.OrderNo and b.ItemNo=a.ItemNo
@ -246,17 +247,17 @@ RecordVersion,OutWorkOrderFlag,ProjectID,OrderType,AuthRuleID,bu)
<select id="searchNotifyOrderList" resultType="SOIssueNotifyOrderListData">
select a.NotifyNo,a.Site,a.ItemNo,a.FGPartNo,a.SOOrderNo,a.OpsItemNo,a.SeqNo,
a.IssureQty,a.OutWorkOrderFlag ,b.operation_desc itemDesc,a.locationNo,a.needDate,
dbo.Get_PartDesc(a.site,a.FGPartNo) partDesc
a.IssureQty,a.OutWorkOrderFlag ,b.OperationDesc itemDesc,a.locationNo,a.needDate,
dbo.Get_PartDesc(a.site,a.FGPartNo) partDesc, a.resourceId
from SOIssueNotifyOrderList a
left join so_routing b on a.site=b.site and a.SOOrderNo=b.order_no and a.OpsItemNo=b.item_no
where a.NotifyNo=#{notifyNo} and a.site=#{site}
left join SORouting b on a.site=b.site and a.SOOrderNo=b.OrderNo and a.OpsItemNo=b.ItemNo
where a.site=#{site} and a.NotifyNo=#{notifyNo}
order by a.ItemNo
</select>
<select id="searchNotifyMaterialList" resultType="SOIssueNotifyOrderMaterialListData">
select a.NotifyNo,a.Site,a.ItemNo,a.BOMItemNo,a.ComponentPartNo,a.QtyToIssue,a.QtyToIssue_Original
select a.NotifyNo,a.Site,a.ItemNo,a.ComponentPartNo,a.QtyToIssue,a.QtyToIssue_Original
,b.FGPartNo,b.OpsItemNo,b.SOOrderNo orderNo,b.SeqNo, dbo.Get_PartDesc(a.site,a.ComponentPartNo) partDesc
,b.locationNo,a.issueType,b.needDate,a.remark
from SOIssueNotifyOrderMaterialList a
@ -342,7 +343,7 @@ RecordVersion,OutWorkOrderFlag,ProjectID,OrderType,AuthRuleID,bu)
</select>
<select id="checkDeleteOrderList" resultType="SOIssueNotifyOrderMaterialListData" >
select NotifyNo,Site,ItemNo,BOMItemNo,ComponentPartNo,QtyToIssue,QtyToIssue_Original
select NotifyNo,Site,ItemNo,ComponentPartNo,QtyToIssue,QtyToIssue_Original
from SOIssueNotifyOrderMaterialList where Site=#{site} and NotifyNo=#{notifyNo}
and ItemNo=#{itemNo,jdbcType=DOUBLE}
</select>
@ -352,18 +353,26 @@ RecordVersion,OutWorkOrderFlag,ProjectID,OrderType,AuthRuleID,bu)
where Site=#{site} and NotifyNo=#{notifyNo}
</update>
<select id="checkDeleteMaterial" resultType="SOIssueNotifyOrderMaterialListData">
select NotifyNo,Site,ItemNo,BOMItemNo,ComponentPartNo,QtyToIssue,QtyToIssue_Original
select NotifyNo,Site,ItemNo,ComponentPartNo,QtyToIssue,QtyToIssue_Original,issueType
from SOIssueNotifyOrderMaterialList where Site=#{site} and NotifyNo=#{notifyNo}
and ItemNo=#{itemNo} and BOMItemNo=#{bOMItemNo}
and ItemNo=#{itemNo}
</select>
<select id="deleteNotifyMaterial">
delete from SOIssueNotifyOrderMaterialList where Site=#{site} and NotifyNo=#{notifyNo}
and ItemNo=#{itemNo} and BOMItemNo=#{bOMItemNo}
and ItemNo=#{itemNo}
</select>
<insert id="saveIssueNotifyChangeLog">
insert into IssueNotifyChangeLog (Site,NotifyNo,ItemNo,SOOrderNo,SeqNo,ComponentPartNo,QtyToIssue,updateType,updateBy,updateDate,issueType)
values (#{site},#{notifyNo},#{itemNo},#{sOOrderNo},#{seqNo},#{componentPartNo},#{qtyToIssue,jdbcType=DOUBLE},#{updateType},#{updateBy},#{updateDate},#{issueType})
</insert>
<insert id="batchSaveIssueNotifyChangeLog">
insert into IssueNotifyChangeLog (Site,NotifyNo,ItemNo,SOOrderNo,SeqNo,ComponentPartNo,QtyToIssue,updateType,updateBy,updateDate,issueType)
values
<foreach collection="list" separator="," item="item">
(#{item.site},#{item.notifyNo},#{item.itemNo},#{item.sOOrderNo},#{item.seqNo},#{item.componentPartNo},#{item.qtyToIssue,jdbcType=DOUBLE},#{item.updateType},#{item.updateBy},#{item.updateDate},#{item.issueType})
</foreach>
</insert>
<select id="getSOIssueNotifyOrderListData" resultType="com.gaotao.modules.orderIssure.vo.SOIssueNotifyOrderList">
select NotifyNo,Site,ItemNo,FGPartNo,SOOrderNo,OpsItemNo,SeqNo,IssureQty,OutWorkOrderFlag,LocationNo,needDate

5
src/main/resources/mapper/shopOrder/ShopOrderMapper.xml

@ -293,8 +293,9 @@
GroupName,
T.ReceiveStatus,T.RepairSOFlag,T.E_OriginalOrderType,T.E_OriginalOrderNo,T.E_Levels,P.PartType,P.Remark as
CustPartNo,
T.NeedDate as COPlanShipDate, T.batch_no batchNo
from Part as p,ShopOrder as T
T.NeedDate as COPlanShipDate, T.batch_no batchNo,
(SELECT ROUND(SUM(issureQty),3) FROM SOIssueNotifyOrderList where Site = T.site and sOOrderNo = T.OrderNo) alreadyApplyTotal
from ShopOrder as T,Part as p
left join Project as pr on pr.Site=T.Site and pr.Projectid=T.ProjectID
<where>
AND T.Site=p.Site and T.PartNo=p.PartNo

Loading…
Cancel
Save