|
@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
|
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
|
|
import com.galaxis.capsule.dto.PageDTO;
|
|
|
import com.galaxis.manatee.dao.*;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSubLaborCostDO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.*;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.*;
|
|
|
import com.galaxis.manatee.exception.BigSizeException;
|
|
@@ -60,6 +61,7 @@ public class U9InfoTask {
|
|
|
savePurCost();
|
|
|
saveCashFlow();
|
|
|
saveLaborCost();
|
|
|
+ saveSubLaborCost();
|
|
|
saveBudgetStatistics();
|
|
|
savePurContract();
|
|
|
saveSalesContract();
|
|
@@ -222,8 +224,8 @@ public class U9InfoTask {
|
|
|
private void saveSalesContract(){
|
|
|
log.info("开始更新销售合同管理");
|
|
|
var objectMapper=new ObjectMapper();
|
|
|
- var page = 1;
|
|
|
- var size = 20;
|
|
|
+ var page = 2;
|
|
|
+ var size = 100;
|
|
|
var flag=true;
|
|
|
while (flag) {
|
|
|
Map<String,String> map=new HashMap<>(1);
|
|
@@ -240,13 +242,17 @@ public class U9InfoTask {
|
|
|
list.forEach(chuanyunSalesContractDTO -> {
|
|
|
try {
|
|
|
if (!StringUtils.isEmpty(chuanyunSalesContractDTO.getOrgname())){
|
|
|
- chuanyunSalesContractDTO.setOrgname(chuanyunCompanyDao.findByCompanyName(chuanyunSalesContractDTO.getOrgname()).getObjectId());
|
|
|
+ if (chuanyunCompanyDao.findByCompanyName(chuanyunSalesContractDTO.getOrgname())!=null){
|
|
|
+ chuanyunSalesContractDTO.setOrgname(chuanyunCompanyDao.findByCompanyName(chuanyunSalesContractDTO.getOrgname()).getObjectId());
|
|
|
+ }
|
|
|
}
|
|
|
if (chuanyunClientDao.findByClientCode(chuanyunSalesContractDTO.getCustname())!=null){
|
|
|
chuanyunSalesContractDTO.setCustname(chuanyunClientDao.findByClientCode(chuanyunSalesContractDTO.getCustname()).getObjectId());
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(chuanyunSalesContractDTO.getCreatedby())){
|
|
|
- chuanyunSalesContractDTO.setCreatedby(chuanyunUserDao.findByName(chuanyunSalesContractDTO.getCreatedby()).getObjectId());
|
|
|
+ if (chuanyunUserDao.findByName(chuanyunSalesContractDTO.getCreatedby())!=null){
|
|
|
+ chuanyunSalesContractDTO.setCreatedby(chuanyunUserDao.findByName(chuanyunSalesContractDTO.getCreatedby()).getObjectId());
|
|
|
+ }
|
|
|
}
|
|
|
SalesContractDTO salesContractDTO = new SalesContractDTO(chuanyunSalesContractDTO);
|
|
|
salesContractDTO.setContractStatus("已完结");
|
|
@@ -279,18 +285,22 @@ public class U9InfoTask {
|
|
|
List<String> macthers = new ArrayList<>();
|
|
|
macthers.add("F0000001_2,"+chuanyunSalesContractDTO.getDocno());
|
|
|
macthers.add("F0000025_2,"+chuanyunSalesContractDTO.getProjectcode());
|
|
|
- var filter= Filter.instance(0,1,true,"And",macthers);
|
|
|
+ var filter= Filter.instance(0,Integer.MAX_VALUE,true,"And",macthers);
|
|
|
var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSaleContractDO.SCHEMA_CODE,filter);
|
|
|
ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
if (chuanyunFindAllResponse.getReturnData() != null) {
|
|
|
List<ChuanyunSaleContractDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
- chuanyunSaveDTO=chuanYunManager.delete(ChuanyunSaleContractDO.SCHEMA_CODE,result.get(0).getObjectId());
|
|
|
+ for(ChuanyunSaleContractDO chuanyunSaleContractDO : result){
|
|
|
+ chuanyunSaveDTO=chuanYunManager.delete(ChuanyunSaleContractDO.SCHEMA_CODE,chuanyunSaleContractDO.getObjectId());
|
|
|
+ }
|
|
|
}
|
|
|
chuanyunSaveDTO =chuanYunManager.save(ChuanyunSaleContractDO.SCHEMA_CODE,purcostString,true);
|
|
|
if(chuanyunSaveDTO.getSuccessful()){
|
|
|
-// log.info("新增销售合同管理成功");
|
|
|
+ log.info("新增销售合同管理成功");
|
|
|
}else{
|
|
|
log.warn("新增销售合同管理失败");
|
|
|
+ log.warn(chuanyunSaveDTO.getErrorMessage());
|
|
|
+ log.warn(purcostString);
|
|
|
}
|
|
|
} catch (JsonProcessingException | BigSizeException e) {
|
|
|
e.printStackTrace();
|
|
@@ -357,18 +367,22 @@ public class U9InfoTask {
|
|
|
//根据合同号新增回款明细
|
|
|
List<String> macthers = new ArrayList<>();
|
|
|
macthers.add("F0000002_2,"+chuanyunSaleContractDO.getContractCode());
|
|
|
- var newfilter= Filter.instance(0,1,true,"And",macthers);
|
|
|
+ var newfilter= Filter.instance(0,Integer.MAX_VALUE,true,"And",macthers);
|
|
|
var newchuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunPaymentReceiveDO.SCHEMA_CODE,newfilter);
|
|
|
ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
if (newchuanyunFindAllResponse.getReturnData() != null) {
|
|
|
List<ChuanyunPaymentReceiveDO> receiveDOSresult=objectMapper.convertValue(newchuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
- chuanyunSaveDTO=chuanYunManager.delete(ChuanyunPaymentReceiveDO.SCHEMA_CODE,receiveDOSresult.get(0).getObjectId());
|
|
|
+ for(ChuanyunPaymentReceiveDO chuanyunPaymentReceiveDO : receiveDOSresult){
|
|
|
+ chuanyunSaveDTO=chuanYunManager.delete(ChuanyunPaymentReceiveDO.SCHEMA_CODE,chuanyunPaymentReceiveDO.getObjectId());
|
|
|
+ }
|
|
|
}
|
|
|
chuanyunSaveDTO =chuanYunManager.save(ChuanyunPaymentReceiveDO.SCHEMA_CODE,purcostString,true);
|
|
|
if(chuanyunSaveDTO.getSuccessful()){
|
|
|
-// log.info("新增销售合同汇款明细成功");
|
|
|
+ log.info("新增销售合同汇款明细成功");
|
|
|
}else{
|
|
|
log.warn("新增销售合同汇款明细失败");
|
|
|
+ log.warn(chuanyunSaveDTO.getErrorMessage());
|
|
|
+ log.warn(purcostString);
|
|
|
}
|
|
|
} catch (JsonProcessingException | BigSizeException e) {
|
|
|
e.printStackTrace();
|
|
@@ -557,6 +571,58 @@ public class U9InfoTask {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 更新子项目人力成本
|
|
|
+ */
|
|
|
+ private void saveSubLaborCost(){
|
|
|
+ log.info("开始更新子项目人力成本");
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
+ var page = 1;
|
|
|
+ var size = 20;
|
|
|
+ var flag=true;
|
|
|
+ while (flag) {
|
|
|
+ Map<String,String> map=new HashMap<>(1);
|
|
|
+ map.put("page",String.valueOf(page));
|
|
|
+ map.put("size",String.valueOf(size));
|
|
|
+ //获取物料成本
|
|
|
+ PageDTO<ChuanyunSubLaborCostDTO> pageInfo = clawFeign.findChuanyunSubLaborCost(map);
|
|
|
+ if (page<=pageInfo.getTotalPages()){
|
|
|
+ page += 1;
|
|
|
+ }else {
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<ChuanyunSubLaborCostDTO> list = pageInfo.getContent();
|
|
|
+ list.forEach(chuanyunSubLaborCostDTO -> {
|
|
|
+ try {
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
|
|
+ String newDate = dateTimeFormatter.format(chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getPeriod());
|
|
|
+ LocalDateTime dt = LocalDateTime.parse(newDate,dateTimeFormatter);
|
|
|
+ chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().setPeriod(dt);
|
|
|
+ String[] deparmentName = chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getDepartment().split("/");
|
|
|
+ chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().setDepartment(deparmentName[deparmentName.length-1]);
|
|
|
+ SubLaborCostDTO subLaborCostDTO = new SubLaborCostDTO(chuanyunSubLaborCostDTO);
|
|
|
+ var purcostString=objectMapper.writeValueAsString(subLaborCostDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
+ List<String> matchers = new ArrayList<>();
|
|
|
+ matchers.add("F0000016_2,"+chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getSubprojectcode());
|
|
|
+ matchers.add("F0000002_2,"+chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getPeriod());
|
|
|
+ matchers.add("F0000017_2,"+chuanyunSubLaborCostDTO.getChuanyunSubLaborCostPrimaryKey().getDepartment());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",matchers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunSubLaborCostDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData() != null) {
|
|
|
+ List<ChuanyunSubLaborCostDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>() {});
|
|
|
+ chuanYunManager.delete(ChuanyunSubLaborCostDO.SCHEMA_CODE,result.get(0).getObjectId());
|
|
|
+ }
|
|
|
+ chuanyunSaveDTO =chuanYunManager.save(ChuanyunSubLaborCostDO.SCHEMA_CODE,purcostString,true);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ log.info(e.getMessage());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 更新项目预决算统计
|
|
|
*/
|
|
|
private void saveBudgetStatistics() {
|
|
@@ -662,6 +728,49 @@ public class U9InfoTask {
|
|
|
}
|
|
|
|
|
|
@Data
|
|
|
+ class SubLaborCostDTO {
|
|
|
+ @JsonProperty("F0000005")
|
|
|
+ private String projectCode;
|
|
|
+
|
|
|
+ @JsonProperty("F0000016")
|
|
|
+ private String subProjectCode;
|
|
|
+
|
|
|
+ @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
|
|
|
+ @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
|
|
|
+ @JsonProperty("F0000002")
|
|
|
+ private LocalDateTime logDate;
|
|
|
+
|
|
|
+ @JsonProperty("F0000017")
|
|
|
+ private String department;
|
|
|
+
|
|
|
+ @JsonProperty("F0000003")
|
|
|
+ private BigDecimal amount;
|
|
|
+
|
|
|
+ @JsonProperty("F0000004")
|
|
|
+ private String dataType;
|
|
|
+
|
|
|
+ public SubLaborCostDTO(ChuanyunSubLaborCostDTO chuanyunSubLaborCostDO){
|
|
|
+ if(null!=chuanyunSubLaborCostDO){
|
|
|
+ if (null!=chuanyunSubLaborCostDO.getCostamount()){
|
|
|
+ this.amount=chuanyunSubLaborCostDO.getCostamount();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getDepartment()){
|
|
|
+ this.department=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getDepartment();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getPeriod()){
|
|
|
+ this.logDate=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getPeriod();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunSubLaborCostDO.getProjectcode()){
|
|
|
+ this.projectCode=chuanyunSubLaborCostDO.getProjectcode();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getSubprojectcode()){
|
|
|
+ this.subProjectCode=chuanyunSubLaborCostDO.getChuanyunSubLaborCostPrimaryKey().getSubprojectcode();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
class LaborCostDTO {
|
|
|
|
|
|
@JsonProperty("F0000005")
|