|
@@ -19,6 +19,7 @@ import com.platform.dao.dto.sqarepartmanage.SparePartInfoDTO;
|
|
|
import com.platform.dao.dto.store.SpareStoreDTO;
|
|
|
import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
|
|
|
import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
|
|
|
+import com.platform.dao.entity.merge.LongYanPurchaseOrderMerge;
|
|
|
import com.platform.dao.entity.repair.RepairApplicationForm;
|
|
|
import com.platform.dao.entity.sb.SbInfo;
|
|
|
import com.platform.dao.entity.sb.SbModelSpareBom;
|
|
@@ -28,6 +29,7 @@ import com.platform.dao.entity.store.OutStoreForm;
|
|
|
import com.platform.dao.enums.*;
|
|
|
import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper;
|
|
|
import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseOrderMapper;
|
|
|
+import com.platform.dao.mapper.merge.LongYanPurchaseOrderMergeMapper;
|
|
|
import com.platform.dao.mapper.project.ProjectMapper;
|
|
|
import com.platform.dao.mapper.repair.RepairApplicationFormMapper;
|
|
|
import com.platform.dao.mapper.sb.SbInfoMapper;
|
|
@@ -89,6 +91,8 @@ public class YongyouServiceImpl implements YongyouService {
|
|
|
private LongYanSpareAddMapper longYanSpareAddMapper;
|
|
|
@Resource
|
|
|
private ProjectMapper projectMapper;
|
|
|
+ @Resource
|
|
|
+ private LongYanPurchaseOrderMergeMapper longYanPurchaseOrderMergeMapper;
|
|
|
private String token_key = "yongyou-token";
|
|
|
private String Conn_key = "yongyou-Conn";
|
|
|
private String cAcc_ID_key = "yongyou-cAcc_ID";
|
|
@@ -859,6 +863,8 @@ public class YongyouServiceImpl implements YongyouService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public void purchaseOrderUpdate() {
|
|
|
//查询当天修改的所有单子
|
|
@@ -964,6 +970,184 @@ public class YongyouServiceImpl implements YongyouService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public String pushMergePurchaseOrder(String id) {
|
|
|
+ LongYanPurchaseOrderMerge merge = longYanPurchaseOrderMergeMapper.selectByPrimaryKey(id);
|
|
|
+ if (merge==null){
|
|
|
+ throw new BusinessException("该合并单已不存在!");
|
|
|
+ }
|
|
|
+ LongYanPurchaseOrderDTO longYanPurchaseOrderDTO = new LongYanPurchaseOrderDTO();
|
|
|
+ longYanPurchaseOrderDTO.setMergeId(id);
|
|
|
+ List<LongYanPurchaseOrderVO> list = longYanPurchaseOrderMapper.selectList(longYanPurchaseOrderDTO);
|
|
|
+ if (list==null||list.size()==0){
|
|
|
+ throw new BusinessException("该合并单下无明细!");
|
|
|
+ }
|
|
|
+
|
|
|
+ PuAppMain puAppMain = new PuAppMain();
|
|
|
+ List<PuAppDetail> puAppDetails = new ArrayList<>();
|
|
|
+ for (LongYanPurchaseOrderVO vo:list){
|
|
|
+ if (vo.getOldOrNew()==null){
|
|
|
+ throw new BusinessException("采购单未选择新老厂!采购单id:"+vo.getId());
|
|
|
+ }
|
|
|
+ LongYanPurchaseDetailDTO longYanPurchaseDetailDTO = new LongYanPurchaseDetailDTO();
|
|
|
+ longYanPurchaseDetailDTO.setLongYangPurchaseOrderId(id);
|
|
|
+ List<LongYanPurchaseDetailVO> detailVOS = longYanPurchaseDetailMapper.selectList(longYanPurchaseDetailDTO);
|
|
|
+ if (vo.getSbId()!=null) {
|
|
|
+ addBom(vo,detailVOS);
|
|
|
+ }
|
|
|
+// puAppMain.setCpersoncode(vo.getCreatedUserName());
|
|
|
+ if (puAppMain.getCdefine1()==null) {
|
|
|
+ puAppMain.setCbustype(vo.getCbustype());
|
|
|
+ puAppMain.setCdepcode(vo.getCdepcode());
|
|
|
+
|
|
|
+// if (list.get(0).getOldOrNew()==1){
|
|
|
+// puAppMain.setCdepcode(DictCache.getValueByCode("YONG_YOU_DEPT",list.get(0).getCdepcode()));
|
|
|
+// }else if (list.get(0).getOldOrNew()==2){
|
|
|
+// puAppMain.setCdepcode(DictCache.getValueByCode("YONG_YOU_DEPT_NEW",list.get(0).getCdepcode()));
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+// puAppMain.setCcode(vo.getPurchaseNo());
|
|
|
+
|
|
|
+ puAppMain.setCpersoncode(vo.getCpersoncode());
|
|
|
+ puAppMain.setCdefine1(DictCache.getLabelByValue("LONG_YAN_PURCHASE_TYPE", vo.getType()));
|
|
|
+ // 获取项目信息
|
|
|
+ if (StringUtils.isNotBlank(vo.getProjectId())) {
|
|
|
+ String fzr = projectMapper.selectByPrimaryKey(vo.getProjectId()).getFzr();
|
|
|
+ if (!StringUtils.isBlank(fzr) && !"无".equals(fzr)) {
|
|
|
+ puAppMain.setCdefine3(fzr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (vo.getSbId() != null) {
|
|
|
+ SbInfo sbInfo = sbInfoMapper.selectByPrimaryKey(vo.getSbId());
|
|
|
+ puAppMain.setCdefine11(sbInfo.getPositionNo() + "-" + sbInfo.getName());
|
|
|
+ }
|
|
|
+ puAppMain.setCmemo(vo.getRemark());
|
|
|
+ puAppMain.setCmaker(vo.getCreatedUserName());
|
|
|
+ puAppMain.setDdate(DateUtils.dateToString(vo.getCreatedTime()));
|
|
|
+ puAppMain.setCptcode(vo.getCptcode());
|
|
|
+ puAppMain.setCdefine12(vo.getCdefine12());
|
|
|
+
|
|
|
+// puAppMain.setCbmemo(vo.getCbmemo());
|
|
|
+ puAppMain.setCdefine6(vo.getPlanGetDate().toString());
|
|
|
+ }
|
|
|
+ String dept = null;
|
|
|
+ if (list.get(0).getOldOrNew()==2){
|
|
|
+ dept = DictCache.getLabelByValue("YONG_YOU_DEPT",list.get(0).getCdepcode());
|
|
|
+ }else if (list.get(0).getOldOrNew()==1){
|
|
|
+ dept = DictCache.getLabelByValue("YONG_YOU_DEPT_NEW",list.get(0).getCdepcode());
|
|
|
+ }
|
|
|
+ for (LongYanPurchaseDetailVO orderVO:detailVOS){
|
|
|
+ PuAppDetail detail = new PuAppDetail();
|
|
|
+ detail.setCdefine30(orderVO.getCdefine30());
|
|
|
+ detail.setCdefine22(orderVO.getCdefine22());
|
|
|
+ detail.setCdefine28(orderVO.getCdefine28());
|
|
|
+ detail.setCdefine29(dept);
|
|
|
+ detail.setCinvcode(orderVO.getNo());
|
|
|
+ detail.setFquantity(orderVO.getNum().intValue());
|
|
|
+ detail.setDrequirdate(vo.getNeedDate().toString());
|
|
|
+ detail.setDarrivedate(vo.getPlanGetDate().toString());
|
|
|
+ detail.setCitem_class(orderVO.getProjectNo());
|
|
|
+ detail.setCitemname(orderVO.getProjectName());
|
|
|
+ detail.setCitem_name(orderVO.getProjectSecondName());
|
|
|
+ detail.setCitemcode(orderVO.getProjectSecondNo());
|
|
|
+
|
|
|
+ detail.setFmoney(MathUtils.formatDouble1(orderVO.getFmoney(),2));//本币含税合计
|
|
|
+ detail.setFunitprice(MathUtils.formatDouble1(orderVO.getFunitprice(),4));//本币无税单价 = 本币不含税金额 /数量
|
|
|
+
|
|
|
+ Double iorisum = orderVO.getFmoney()/orderVO.getIexchrate();//原币价税合计111
|
|
|
+ Double ioritaxprice = (iorisum/(1+orderVO.getIpertaxrate()/100))*orderVO.getIpertaxrate()/100 ;//原币税额111
|
|
|
+ Double iorimoney = iorisum-ioritaxprice;//原币不含税金额 = 原币价税合计 - 原币税额111
|
|
|
+ Double ioricost = iorimoney/orderVO.getNum().doubleValue();//原币不含税单价 = 原币不含税金额 / 数量
|
|
|
+ Double ioritaxcost = iorisum/orderVO.getNum().doubleValue();//原币含税单价
|
|
|
+ Double ftaxprice = orderVO.getFmoney()/orderVO.getNum().doubleValue();//本币含税单价111111
|
|
|
+// Double itaxprice = ftaxprice*orderVO.getNum().doubleValue()/(1+orderVO.getIpertaxrate());//本币税额
|
|
|
+ Double itaxprice = (orderVO.getFmoney()/(1+orderVO.getIpertaxrate()/100))*orderVO.getIpertaxrate()/100;//本币税额111
|
|
|
+
|
|
|
+ Double imoney = ftaxprice*orderVO.getNum().doubleValue()-itaxprice;///本币不含税金额 = 本币含税单价 * 数量 - 本币税额
|
|
|
+
|
|
|
+ detail.setIorisum(MathUtils.formatDouble1(iorisum,2));
|
|
|
+ detail.setIoritaxprice(MathUtils.formatDouble1(ioritaxprice,2));
|
|
|
+
|
|
|
+ detail.setIorimoney(MathUtils.formatDouble1(iorimoney,2));
|
|
|
+ detail.setIoricost(MathUtils.formatDouble1(ioricost,4));
|
|
|
+
|
|
|
+ detail.setIoritaxcost(MathUtils.formatDouble1(ioritaxcost,4));
|
|
|
+ detail.setFtaxprice(MathUtils.formatDouble1(ftaxprice,4));
|
|
|
+ detail.setItaxprice(MathUtils.formatDouble1(itaxprice,2));
|
|
|
+ detail.setImoney(MathUtils.formatDouble1(imoney,2));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ detail.setCbmemo(orderVO.getCbmemo());
|
|
|
+// detail.setFtaxprice(MathUtils.formatDouble1(orderVO.getIpertaxrate(),2));
|
|
|
+ detail.setIpertaxrate(MathUtils.formatDouble1(orderVO.getIpertaxrate(),2));
|
|
|
+// detail.setIorisum(MathUtils.formatDouble1(orderVO.getIorisum(),2));
|
|
|
+
|
|
|
+
|
|
|
+// detail.setCdefine12(orderVO.getCdefine12());
|
|
|
+ puAppDetails.add(detail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ PuAppVouch puAppVouch = new PuAppVouch();
|
|
|
+ puAppVouch.setPuAppMain(puAppMain);
|
|
|
+ puAppVouch.setPuAppDetail(puAppDetails);
|
|
|
+ PushPurchaseOrderRequest request = new PushPurchaseOrderRequest();
|
|
|
+ request.setPuAppVouch(puAppVouch);
|
|
|
+ request.setTradeID("");
|
|
|
+ // 正式环境代码开始
|
|
|
+ request.setToken(geToken(list.get(0).getOldOrNew()));
|
|
|
+ request.setCAcc_ID(getCAccId2(list.get(0).getOldOrNew()));
|
|
|
+ request.setConn(getConn2(list.get(0).getOldOrNew()));
|
|
|
+ // 正式环境代码结束
|
|
|
+ // 测试环境代码开始
|
|
|
+ /*request.setToken(geTokenTest());
|
|
|
+ request.setCAcc_ID(getCAccIdTest());
|
|
|
+ request.setConn(getConnTest());*/
|
|
|
+ // 测试环境代码结束
|
|
|
+ PushPurchaseOrderHandler handler = new PushPurchaseOrderHandler();
|
|
|
+ handler.setRequest(request);
|
|
|
+ String responseStr = handler.handler();
|
|
|
+ PushPurchaseOrderResponse response = JsonUtils.jsonToModel(responseStr,PushPurchaseOrderResponse.class);
|
|
|
+ LongYanPurchaseDetail detail = new LongYanPurchaseDetail();
|
|
|
+ LongYanPurchaseOrderMerge longYanPurchaseOrderMerge = new LongYanPurchaseOrderMerge();
|
|
|
+ longYanPurchaseOrderMerge.setId(id);
|
|
|
+ if (response.getResult()){
|
|
|
+ longYanPurchaseOrderMerge.setStatus(1);
|
|
|
+ longYanPurchaseOrderMerge.setYongyouId(response.getData());
|
|
|
+ }else {
|
|
|
+ longYanPurchaseOrderMerge.setStatus(2);
|
|
|
+ }
|
|
|
+ longYanPurchaseOrderMergeMapper.updateByPrimaryKey(longYanPurchaseOrderMerge);
|
|
|
+ for (LongYanPurchaseOrderVO vo:list){
|
|
|
+ LongYanPurchaseOrder order = new LongYanPurchaseOrder();
|
|
|
+ order.setId(vo.getId());
|
|
|
+ if (response.getResult()){
|
|
|
+ order.setStatus(3);
|
|
|
+ order.setYongYouId(response.getData());
|
|
|
+// detail.setLongYangPurchaseOrderId(order.getId());
|
|
|
+ detail.setDetailStatus(9);
|
|
|
+ }else {
|
|
|
+ order.setStatus(0);
|
|
|
+ detail.setDetailStatus(10);
|
|
|
+ }
|
|
|
+ order.setErrorMessage(response.getMsg());
|
|
|
+ longYanPurchaseOrderMapper.updateByPrimaryKeySelective(order);
|
|
|
+ Weekend<LongYanPurchaseDetail> weekend = new Weekend<>(LongYanPurchaseDetail.class);
|
|
|
+ WeekendCriteria<LongYanPurchaseDetail,Object> weekendCriteria = weekend.weekendCriteria();
|
|
|
+ weekendCriteria.andEqualTo(LongYanPurchaseDetail::getLongYangPurchaseOrderId,order.getId());
|
|
|
+ longYanPurchaseDetailMapper.updateByExampleSelective(detail,weekend);
|
|
|
+ if (!response.getResult()){
|
|
|
+ throw new BusinessException(response.getMsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return response.getMsg();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public String pushPurchaseOrder(String id) {
|