feat: 定数包项目

dev_fifo1.0
chenhc 1 year ago
parent 56ee67d92e
commit d4a5f6d67f

@ -317,4 +317,12 @@ public class Constant {
public static final Integer THR_INV_SF_ORDER_TYPE = 1;
public static final Integer THR_INV_PH_ORDER_TYPE = 2;
public static final Integer THR_INV_GH_ORDER_TYPE = 3;
/**
* basic_sk_project -- type
*/
public static final Integer SK_PRO_DSB_TYPE = 1;//1定数包内部使用
public static final Integer SK_PRO_THR_TYPE = 2;//2项目、组套外部关联
public static final Integer SK_PRO_SS_TYPE = 3;//3术士组套
}

@ -1,6 +1,7 @@
package com.glxp.api.controller.basic;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
@ -26,6 +27,7 @@ import com.glxp.api.service.basic.BasicSkProjectService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.basic.impl.BasicDestinyRelService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.StringUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
@ -37,9 +39,12 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
public class BasicDestinyRelController {
@ -64,6 +69,14 @@ public class BasicDestinyRelController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<BasicSkProjectResponse> basicSkProjectResponses = basicSkProjectService.filterList(basicSkProjectRequest);
if (CollectionUtil.isNotEmpty(basicSkProjectResponses)){
List<Long> pId = basicSkProjectResponses.stream().map(BasicSkProjectResponse::getId).collect(Collectors.toList());
Map<Long,BigDecimal> priceMap = basicDestinyRelService.sumPriceByRedIds(pId);
basicSkProjectResponses.forEach( x -> {
BigDecimal price = priceMap.get(x.getId());
x.setPrice(String.valueOf(price));
});
}
PageInfo<BasicSkProjectResponse> pageInfo = new PageInfo<>(basicSkProjectResponses);
PageSimpleResponse<BasicSkProjectResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
@ -91,6 +104,7 @@ public class BasicDestinyRelController {
}
AuthAdmin authAdmin = customerService.getUserBean();
basicSkProjectEntity.setStatus(1);//草稿
basicSkProjectEntity.setId(IdUtil.getSnowflakeNextId());
basicSkProjectEntity.setCreateTime(new Date());
basicSkProjectEntity.setUpdateTime(new Date());
@ -287,5 +301,27 @@ public class BasicDestinyRelController {
return ResultVOUtils.success("后台已开始下载,请稍后刷新查看!");
}
@PostMapping("/udiwms/basic/destiny/model/submitSkSkProject")
public BaseResponse submitSkSkProject(@RequestBody BasicSkProjectEntity basicSkProjectEntity) {
Long id = basicSkProjectEntity.getId();
if (id == null){
return ResultVOUtils.error(999, "提交失败id不可以为空");
}
Boolean falgf = basicSkProjectService.generateProduct(id);
if (!falgf) {
return ResultVOUtils.error(999, "生成产品失败!");
}
AuthAdmin authAdmin = customerService.getUserBean();
basicSkProjectEntity.setStatus(3);//审核通过
basicSkProjectEntity.setUpdateTime(new Date());
basicSkProjectEntity.setUpdateUser(authAdmin.getId() + "");
Boolean falg = basicSkProjectService.updateById(basicSkProjectEntity);
if (!falg) {
return ResultVOUtils.error(999, "编辑失败!");
}
return ResultVOUtils.success();
}
}

@ -58,6 +58,22 @@ public class IoDestinyProcessController {
return ResultVOUtils.success(udiRelevanceResponseList);
}
@GetMapping("/udiwms/basic/destiny/model/filterDestinyProcessDelectFy")
public BaseResponse filterDestinyProcessDelectFy(FilterUdiRelRequest filterUdiRelRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<UdiRelevanceResponse> udiRelevanceResponseList = ioDestinyProcessDetailService.filterProcessDetail(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(udiRelevanceResponseList);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(udiRelevanceResponseList);
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/basic/destiny/model/filterDestinyProcess")
public BaseResponse filterDestinyProcess(IodestinyProcessRequest iodestinyProcessRequest, BindingResult bindingResult) {

@ -7,7 +7,9 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
@Mapper
public interface BasicDestinyRelMapper extends BaseMapperPlus<BasicDestinyRelMapper, BasicSkProjectDetailEntity, BasicSkProjectDetailEntity> {
@ -18,4 +20,6 @@ public interface BasicDestinyRelMapper extends BaseMapperPlus<BasicDestinyRelMap
List<BasicSkProjectDetailEntity> filterDestinyRelListByPId(@Param("thrCode") String thrCode);
List<Map<String, Object>> sumPriceByRedIds(@Param("pId")List<Long> pId);
}

@ -96,4 +96,9 @@ public class BasicSkProjectEntity {
private String unit;
@TableField(value = "price")
private String price;
@TableField(value = "status")
@ApiModelProperty(value = "状态1.草稿2.未审核3.已审核,4.已拒绝)")
private Integer status;
}

@ -100,6 +100,7 @@ public class UdiProductEntity {
private String updateUser;
private Date createTime;
private String createUser;
private String destinyType;
/**
* (

@ -144,4 +144,8 @@ public class AddProductRequest {
@TableField(value = "matrial")
@ApiModelProperty(value="耗材材质")
private String matrial;
private String price;
private Integer destinyType;
private String code;
}

@ -59,6 +59,7 @@ public class BasicSkProjectResponse {
private String unit;
private String price;
private Integer status;
private List<BasicSkProjectDetailResponse> basicSkProjectDetailResponses;
}

@ -1,18 +1,25 @@
package com.glxp.api.service.basic;
import cn.hutool.core.collection.CollectionUtil;
import com.github.pagehelper.PageHelper;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.req.basic.AddProductRequest;
import com.glxp.api.req.basic.BasicSkProjectRequest;
import com.glxp.api.req.thrsys.FilterThrProductsRequest;
import com.glxp.api.res.basic.BasicSkProjectResponse;
import com.glxp.api.service.basic.impl.BasicDestinyRelService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.basic.BasicSkProjectMapper;
import com.glxp.api.entity.basic.BasicSkProjectEntity;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class BasicSkProjectService extends ServiceImpl<BasicSkProjectMapper, BasicSkProjectEntity> {
@ -20,6 +27,10 @@ public class BasicSkProjectService extends ServiceImpl<BasicSkProjectMapper, Bas
@Resource
BasicSkProjectMapper basicSkProjectMapper;
@Resource
UdiProductService udiProductService;
@Resource
BasicDestinyRelService basicDestinyRelService;
public List<BasicSkProjectResponse> filterList(BasicSkProjectRequest basicSkProjectRequest) {
if (basicSkProjectRequest == null) {
@ -32,4 +43,26 @@ public class BasicSkProjectService extends ServiceImpl<BasicSkProjectMapper, Bas
List<BasicSkProjectResponse> data = basicSkProjectMapper.filterList(basicSkProjectRequest);
return data;
}
/**
* -
* @param id
* @return
*/
public Boolean generateProduct(Long id) {
List<Long> pId = new ArrayList<>();
pId.add(id);
Map<Long, BigDecimal> priceMap = basicDestinyRelService.sumPriceByRedIds(pId);
BigDecimal price = priceMap.get(id);
BasicSkProjectEntity basicSkProjectEntity = basicSkProjectMapper.selectById(id);
AddProductRequest addProductRequest = new AddProductRequest();
addProductRequest.setName(basicSkProjectEntity.getName());
addProductRequest.setSpec(basicSkProjectEntity.getGgxh());
addProductRequest.setMeasname(basicSkProjectEntity.getUnit());
addProductRequest.setPrice(String.valueOf(price));
addProductRequest.setDestinyType(1);//定数包
addProductRequest.setCode(basicSkProjectEntity.getCode());
udiProductService.addProduct(addProductRequest);
return true;
}
}

@ -29,9 +29,8 @@ import com.glxp.api.res.basic.UdiRelevanceResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.math.BigDecimal;
import java.util.*;
@Service
@ -157,4 +156,16 @@ public class BasicDestinyRelService extends ServiceImpl<BasicDestinyRelMapper, B
public List<BasicSkProjectDetailEntity> filterDestinyRelListByPId(String thrCode) {
return basicDestinyRelMapper.filterDestinyRelListByPId(thrCode);
}
public Map<Long, BigDecimal> sumPriceByRedIds(List<Long> pId) {
Map<Long, BigDecimal> reMap = new HashMap<Long, BigDecimal>();
List<Map<String, Object>> maps = basicDestinyRelMapper.sumPriceByRedIds(pId);
for (int i = 0; i < maps.size(); i++) {
Map<String, Object> map = maps.get(i);
reMap.put(Long.parseLong(String.valueOf(map.get("pId"))),
new BigDecimal(String.valueOf(map.get("price")))
);
}
return reMap;
}
}

@ -231,7 +231,12 @@ public class UdiProductServiceImpl implements UdiProductService {
BeanUtils.copyProperties(addProductRequest, udiProductEntity);
long relId = gennerOrderUtils.getRelId();
udiProductEntity.setId(relId);
udiProductEntity.setNameCode(relId + "");
String code = addProductRequest.getCode();
if (StrUtil.isEmpty(code)){
udiProductEntity.setNameCode(relId + "");
}else {
udiProductEntity.setNameCode(code);
}
udiProductEntity.setUuid(IdUtil.getSnowflakeNextId() + "");
udiProductEntity.setCpmctymc(addProductRequest.getName());

@ -208,7 +208,8 @@
<select id="filterDestinyProducts" parameterType="com.glxp.api.req.basic.FilterUdiRelRequest"
resultType="com.glxp.api.res.basic.UdiRelevanceResponse">
SELECT basic_udirel.*,
SELECT company_product_relevance.price,
basic_udirel.*,
basic_products.id AS PRId,
basic_products.originUuid,
basic_products.nameCode,
@ -263,8 +264,9 @@
basic_sk_project_detail.count as count,
basic_sk_project_detail.id as deId
FROM basic_udirel
INNER JOIN basic_products ON basic_products.uuid = basic_udirel.uuid
INNER JOIN basic_sk_project_detail ON basic_sk_project_detail.relId = basic_udirel.id
INNER JOIN basic_products ON basic_products.uuid = basic_udirel.uuid
INNER JOIN basic_sk_project_detail ON basic_sk_project_detail.relId = basic_udirel.id
left join company_product_relevance ON basic_sk_project_detail.relId = company_product_relevance.udiRlIdFk
<where>
<if test="ids != null and ids.size() > 0">
and basic_udirel.id in
@ -291,4 +293,19 @@
RIGHT join basic_sk_project_detail pd ON pd.pId = p.id
where p.code = #{thrCode}
</select>
<select id="sumPriceByRedIds" resultType="java.util.Map">
select pd.pId as pId,COALESCE(SUM(company_product_relevance.price * pd.count), 0) as price
from basic_sk_project_detail pd
left join company_product_relevance ON pd.relId = company_product_relevance.udiRlIdFk
<where>
<if test="pId != null and pId.size() > 0">
and pd.pId in
<foreach collection="pId" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
group by pd.pId
</select>
</mapper>

@ -7,6 +7,9 @@
FROM basic_sk_project
LEFT JOIN auth_user cb ON basic_sk_project.createUser = cb.id
<where>
<if test="type != '' and type != null">
AND type = #{type}
</if>
<if test="name != '' and name != null">
AND name LIKE concat('%', #{name}, '%')
</if>

@ -191,7 +191,8 @@
catalogname1,
catalogname2,
catalogname3,
matrial)
matrial,
destinyType)
values (#{id}, #{uuid},
#{originUuid},
#{nameCode},
@ -251,7 +252,8 @@
#{catalogname1},
#{catalogname2},
#{catalogname3},
#{matrial})
#{matrial},
#{destinyType})
</insert>
<insert id="insertUdiInfos" parameterType="java.util.List">

@ -84,9 +84,11 @@
LEFT JOIN auth_user au ON au.id = i1.updateUser
LEFT JOIN auth_user au2 ON au2.id = i1.createUser
<where>
<if test="billNo != '' and billNo != null">
AND i1.billNo = #{billNo}
</if>
</where>
order by i1.updateTime desc
</select>
</mapper>
</mapper>

@ -2005,3 +2005,11 @@ CALL Pro_Temp_ColumnWork('thr_inv_order', 'chargeTime',
CALL Pro_Temp_ColumnWork('thr_inv_order', 'chargeUser',
' varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''收费人员''',
1);
CALL Pro_Temp_ColumnWork('basic_sk_project', 'status',
' int(0) NULL DEFAULT NULL COMMENT '' 状态1.草稿2.未审核3.已审核,4.已拒绝)''', 1);
CALL Pro_Temp_ColumnWork('basic_products', 'destinyType',
' int(0) NULL DEFAULT NULL COMMENT''1:定数包''',
1);

Loading…
Cancel
Save