You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/controller/basic/BasicManufacturerController...

317 lines
17 KiB
Java

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<BasicManufacturerEntity> basicUnitMaintainEntities;
basicUnitMaintainEntities = manufacturerService.filterList(basicUnitMaintainFilterRequest);
PageInfo<BasicManufacturerEntity> pageInfo = new PageInfo<>(basicUnitMaintainEntities);
PageSimpleResponse<BasicManufacturerEntity> 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<BasicErpUnitsResponse> 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<ThrSystemEntity> basicThirdSysEntities = thrSystemService.filterBasicThiSys(filterBasicThirdSysRequest);
List<BasicProductThirdSysResponse> 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<BasicProductThirdSysResponse> pageInfo;
pageInfo = new PageInfo<>(basicProductThirdSysResponses);
PageSimpleResponse<BasicProductThirdSysResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicProductThirdSysResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
}