package com.glxp.api.controller.basic; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.SyncDelType; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.BasicManufacturerEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.req.basic.BasicDataRequest; import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest; import com.glxp.api.req.basic.CombineSingleUnitRequest; import com.glxp.api.req.basic.CombineUnitRequest; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest; import com.glxp.api.req.thrsys.ThrUnitMaintainFilterRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicErpUnitsResponse; import com.glxp.api.res.basic.BasicProductThirdSysResponse; import com.glxp.api.service.basic.BasicManufacturerService; import com.glxp.api.service.thrsys.ThrSystemDetailService; import com.glxp.api.service.thrsys.ThrSystemService; import com.glxp.api.util.CustomUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 生产企业字典 */ @Slf4j @RestController public class BasicManufacturerController extends BaseController { @Resource BasicManufacturerService manufacturerService; @GetMapping("/udiwms/basic/manu/maintain/filter") public BaseResponse filterBasicUnitMaintain(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List basicUnitMaintainEntities; basicUnitMaintainEntities = manufacturerService.filterList(basicUnitMaintainFilterRequest); PageInfo pageInfo = new PageInfo<>(basicUnitMaintainEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(basicUnitMaintainEntities); return ResultVOUtils.success(pageSimpleResponse); } @AuthRuleAnnotation("") @PostMapping("/udiwms/basic/manu/maintain/save") public BaseResponse save(@RequestBody @Valid BasicManufacturerEntity basicUnitMaintainSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } boolean result = manufacturerService.verifyExists(basicUnitMaintainSaveRequest); if (result) { return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加"); } BasicManufacturerEntity basicUnitMaintainEntity = new BasicManufacturerEntity(); BeanUtils.copyProperties(basicUnitMaintainSaveRequest, basicUnitMaintainEntity); basicUnitMaintainEntity.setErpId(CustomUtil.getId()); basicUnitMaintainEntity.setUpdateTime(new Date()); basicUnitMaintainEntity.setId(IdUtil.getSnowflakeNextId()); boolean b = manufacturerService.save(basicUnitMaintainEntity); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } return ResultVOUtils.success(); } @AuthRuleAnnotation("") @PostMapping("/udiwms/basic/manu/maintain/update") public BaseResponse update(@RequestBody @Valid BasicManufacturerEntity basicUnitMaintainSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } boolean result = manufacturerService.verifyExists(basicUnitMaintainSaveRequest); if (result) { return ResultVOUtils.error(ResultEnum.DATA_REPEAT, "重复添加"); } basicUnitMaintainSaveRequest.setOutType(ConstantStatus.CORP_SICK_CUS); basicUnitMaintainSaveRequest.setUpdateTime(new Date()); manufacturerService.updateById(basicUnitMaintainSaveRequest); return ResultVOUtils.success("修改成功"); } @AuthRuleAnnotation("") @PostMapping("/udiwms/basic/manu/maintain/delete") public BaseResponse deleteBasicUnitMaintain(@RequestBody DeleteRequest deleteRequest) { String id = deleteRequest.getId(); manufacturerService.removeById(id); // //调用同步删除的方法 // BasicDataRequest basicDataRequest = new BasicDataRequest(); // basicDataRequest.setDeleteRequest(deleteRequest); // basicDataRequest.setKey(SyncDelType.BASIC_CORP_MAINTAIN); // Long userId = getUserId(); // spGetHttpClient.deleteBasicData(basicDataRequest, userId + ""); return ResultVOUtils.success("删除成功"); } @AuthRuleAnnotation("") @PostMapping("/udiwms/basic/manu/maintain/combine") public BaseResponse combine(@RequestBody CombineUnitRequest combineRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List erpUnitsResponses = combineRequest.getCustmandocResponses(); if (erpUnitsResponses != null && erpUnitsResponses.size() > 0) { for (BasicErpUnitsResponse erpUnitsResponse : erpUnitsResponses) { BasicManufacturerEntity basicUnitMaintainEntity = new BasicManufacturerEntity(); if (combineRequest.getThirdSys() != null) { if ("thirdId".equals(combineRequest.getThirdSys())) { basicUnitMaintainEntity.setThirdId(erpUnitsResponse.getUnitId()); basicUnitMaintainEntity.setThirdName(erpUnitsResponse.getName()); } else if ("thirdId1".equals(combineRequest.getThirdSys())) { basicUnitMaintainEntity.setThirdId1(erpUnitsResponse.getUnitId()); basicUnitMaintainEntity.setThirdName1(erpUnitsResponse.getName()); } else if ("thirdId2".equals(combineRequest.getThirdSys())) { basicUnitMaintainEntity.setThirdId2(erpUnitsResponse.getUnitId()); basicUnitMaintainEntity.setThirdName2(erpUnitsResponse.getName()); } else if ("thirdId3".equals(combineRequest.getThirdSys())) { basicUnitMaintainEntity.setThirdId3(erpUnitsResponse.getUnitId()); basicUnitMaintainEntity.setThirdName3(erpUnitsResponse.getName()); } else if ("thirdId4".equals(combineRequest.getThirdSys())) { basicUnitMaintainEntity.setThirdId4(erpUnitsResponse.getUnitId()); basicUnitMaintainEntity.setThirdName4(erpUnitsResponse.getName()); } } basicUnitMaintainEntity.setErpId(CustomUtil.getId()); basicUnitMaintainEntity.setName(erpUnitsResponse.getName()); basicUnitMaintainEntity.setSpell(erpUnitsResponse.getSpell()); basicUnitMaintainEntity.setAddr(erpUnitsResponse.getAddr()); basicUnitMaintainEntity.setCreditNo(erpUnitsResponse.getCreditNo()); basicUnitMaintainEntity.setContact(erpUnitsResponse.getContact()); basicUnitMaintainEntity.setMobile(erpUnitsResponse.getMobile()); basicUnitMaintainEntity.setCorpType(ConstantStatus.CORP_SP); basicUnitMaintainEntity.setUpdateTime(new Date()); basicUnitMaintainEntity.setId(IdUtil.getSnowflakeNextId()); manufacturerService.save(basicUnitMaintainEntity); } } return ResultVOUtils.success("选入成功"); } @Resource ThrSystemDetailService thrSystemDetailService; @AuthRuleAnnotation("") @GetMapping("/udiwms/basic/manu/maintain/combineAll") public BaseResponse combineAll(ThrUnitMaintainFilterRequest unitMaintainFilterRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } ThrSystemDetailEntity basicThirdSysDetailEntity = thrSystemDetailService.selectByKey("manuUrl", unitMaintainFilterRequest.getThirdSys()); if (basicThirdSysDetailEntity == null || basicThirdSysDetailEntity.getValue() == null) return ResultVOUtils.error(500, "往来单位接口地址未定义"); if (basicThirdSysDetailEntity.getEnabled()) { manufacturerService.selectAllUnit(basicThirdSysDetailEntity, unitMaintainFilterRequest); } else { return ResultVOUtils.error(500, "第三方系统往来单位接口服务未启用"); } return ResultVOUtils.success("后台正在添加,请稍后刷新查看!"); } @AuthRuleAnnotation("") @PostMapping("/udiwms/basic/manu/maintain/combineSingle") public BaseResponse combineSingle(@RequestBody CombineSingleUnitRequest combineRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } BasicErpUnitsResponse basicErpUnitsResponse = combineRequest.getBasicErpUnitsResponse(); BasicManufacturerEntity basicCorpEntity = new BasicManufacturerEntity(); basicCorpEntity.setId(Long.parseLong(combineRequest.getKey())); if (combineRequest.getThirdSys() != null) { if ("thirdId".equals(combineRequest.getThirdSys())) { basicCorpEntity.setThirdId(basicErpUnitsResponse.getId()); basicCorpEntity.setThirdName(basicErpUnitsResponse.getName()); } else if ("thirdId1".equals(combineRequest.getThirdSys())) { basicCorpEntity.setThirdId1(basicErpUnitsResponse.getId()); basicCorpEntity.setThirdName1(basicErpUnitsResponse.getName()); } else if ("thirdId2".equals(combineRequest.getThirdSys())) { basicCorpEntity.setThirdId2(basicErpUnitsResponse.getId()); basicCorpEntity.setThirdName2(basicErpUnitsResponse.getName()); } else if ("thirdId3".equals(combineRequest.getThirdSys())) { basicCorpEntity.setThirdId3(basicErpUnitsResponse.getId()); basicCorpEntity.setThirdName3(basicErpUnitsResponse.getName()); } else if ("thirdId4".equals(combineRequest.getThirdSys())) { basicCorpEntity.setThirdId4(basicErpUnitsResponse.getId()); basicCorpEntity.setThirdName4(basicErpUnitsResponse.getName()); } } manufacturerService.updateById(basicCorpEntity); return ResultVOUtils.success("关联成功"); } @Resource private ThrSystemService thrSystemService; //获取产品信息详情(多平台) @AuthRuleAnnotation("") @GetMapping("/udiwms/manutMaintain/thirdSys/detail") public BaseResponse getThirdSysDetail(BasicUnitMaintainFilterRequest basicUnitMaintainFilterRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } BasicManufacturerEntity basicUnitMaintainEntity = manufacturerService.getById(basicUnitMaintainFilterRequest.getId() + ""); FilterBasicThirdSysRequest filterBasicThirdSysRequest = new FilterBasicThirdSysRequest(); filterBasicThirdSysRequest.setEnabled(true); List basicThirdSysEntities = thrSystemService.filterBasicThiSys(filterBasicThirdSysRequest); List basicProductThirdSysResponses = new ArrayList<>(); for (ThrSystemEntity basicThirdSysEntity : basicThirdSysEntities) { if (basicThirdSysEntity.getThirdId().equals("thirdId")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); basicProductThirdSysResponse.setSysId(basicThirdSysEntity.getThirdId()); basicProductThirdSysResponse.setSysName(basicThirdSysEntity.getThirdName()); if (basicUnitMaintainEntity != null) { basicProductThirdSysResponse.setThirdId(basicUnitMaintainEntity.getThirdId()); basicProductThirdSysResponse.setThirdName(basicUnitMaintainEntity.getThirdName()); } basicProductThirdSysResponses.add(basicProductThirdSysResponse); } else if (basicThirdSysEntity.getThirdId().equals("thirdId1")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); basicProductThirdSysResponse.setSysId(basicThirdSysEntity.getThirdId()); basicProductThirdSysResponse.setSysName(basicThirdSysEntity.getThirdName()); if (basicUnitMaintainEntity != null) { basicProductThirdSysResponse.setThirdId(basicUnitMaintainEntity.getThirdId1()); basicProductThirdSysResponse.setThirdName(basicUnitMaintainEntity.getThirdName1()); } basicProductThirdSysResponses.add(basicProductThirdSysResponse); } else if (basicThirdSysEntity.getThirdId().equals("thirdId2")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); basicProductThirdSysResponse.setSysId(basicThirdSysEntity.getThirdId()); basicProductThirdSysResponse.setSysName(basicThirdSysEntity.getThirdName()); if (basicUnitMaintainEntity != null) { basicProductThirdSysResponse.setThirdId(basicUnitMaintainEntity.getThirdId2()); basicProductThirdSysResponse.setThirdName(basicUnitMaintainEntity.getThirdName2()); } basicProductThirdSysResponses.add(basicProductThirdSysResponse); } else if (basicThirdSysEntity.getThirdId().equals("thirdId3")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); basicProductThirdSysResponse.setSysId(basicThirdSysEntity.getThirdId()); basicProductThirdSysResponse.setSysName(basicThirdSysEntity.getThirdName()); if (basicUnitMaintainEntity != null) { basicProductThirdSysResponse.setThirdId(basicUnitMaintainEntity.getThirdId3()); basicProductThirdSysResponse.setThirdName(basicUnitMaintainEntity.getThirdName3()); } basicProductThirdSysResponses.add(basicProductThirdSysResponse); } else if (basicThirdSysEntity.getThirdId().equals("thirdId4")) { BasicProductThirdSysResponse basicProductThirdSysResponse = new BasicProductThirdSysResponse(); basicProductThirdSysResponse.setSysId(basicThirdSysEntity.getThirdId()); basicProductThirdSysResponse.setSysName(basicThirdSysEntity.getThirdName()); if (basicUnitMaintainEntity != null) { basicProductThirdSysResponse.setThirdId(basicUnitMaintainEntity.getThirdId4()); basicProductThirdSysResponse.setThirdName(basicUnitMaintainEntity.getThirdName4()); } basicProductThirdSysResponses.add(basicProductThirdSysResponse); } } PageInfo pageInfo; pageInfo = new PageInfo<>(basicProductThirdSysResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(basicProductThirdSysResponses); return ResultVOUtils.success(pageSimpleResponse); } }